Jump to content
Sign in to follow this  
grandmasterjack

Store title instead of item on Paypal page

Recommended Posts

I am using osComerce Mercant v2.2 RC2 and have paypals modules already installed with this.

On both;

Payment Modules

MODULE_PAYMENT_PAYPAL_TEXT_TITLE and

PayPal Website Payments Standard which are the ones I am using

I get the shop name instead of item can anyone help with this.

I know on some paypal modules you can change from agregate to single item in the edit but these modules don't have this.

 

Thanks

Jack

Ps as you can see by my previous post I do try to work things out for myself and don't give in easy.


If at first you don't succeed.............................Cheat!!

Share this post


Link to post
Share on other sites
I am using osComerce Mercant v2.2 RC2 and have paypals modules already installed with this.

On both;

Payment Modules

MODULE_PAYMENT_PAYPAL_TEXT_TITLE and

PayPal Website Payments Standard which are the ones I am using

I get the shop name instead of item can anyone help with this.

I know on some paypal modules you can change from agregate to single item in the edit but these modules don't have this.

 

Thanks

Jack

Ps as you can see by my previous post I do try to work things out for myself and don't give in easy.

 

 

Hi Jack,

 

As far as I can tell, The PER ITEM option has been removed from PayPal Website Payments Standard (PayPal IPN) due to problems.

Share this post


Link to post
Share on other sites
Hi Jack,

 

As far as I can tell, The PER ITEM option has been removed from PayPal Website Payments Standard (PayPal IPN) due to problems.

thats mean we sell our store, instead of item, because this is what written in customer's recipe under item name. this is bad! we really need some solution for it. please anybody, who knows this script, help to fix it.

Share this post


Link to post
Share on other sites
thats mean we sell our store, instead of item, because this is what written in customer's recipe under item name. this is bad! we really need some solution for it. please anybody, who knows this script, help to fix it.

 

I don't understand why in the php script it says "item name' => STORE NAME";

$process_button_string = '';Is there supose to be a string in here?

$parameters = array('cmd' => '_xclick',

'item_name' => STORE_NAME, I changed "STORE_NAME" to "Sale" at least it looks better.

'shipping' => $this->format_raw($order->info['shipping_cost']),

'tax' => $this->format_raw($order->info['tax']),

'business' => MODULE_PAYMENT_PAYPAL_STANDARD_ID,

'amount' => $this->format_raw($order->info['total'] - $order->info['shipping_cost'] - $order->info['tax']),

'currency_code' => $currency,

'invoice' => substr($cart_PayPal_Standard_ID, strpos($cart_PayPal_Standard_ID, '-')+1),

'custom' => $customer_id,

'no_note' => '1',

'notify_url' => tep_href_link('ext/modules/payment/paypal/standard_ipn.php', '', 'SSL', false, false),

'return' => tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL'),

'cancel_return' => tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'),

'bn' => 'osCommerce22_Default_ST',

'paymentaction' => ((MODULE_PAYMENT_PAYPAL_STANDARD_TRANSACTION_METHOD == 'Sale') ? 'sale' : 'authorization'));

I don't claim to understand php but should this not in some way refer to the item? not the store name.

Jack


If at first you don't succeed.............................Cheat!!

Share this post


Link to post
Share on other sites

just wondering, because i am not a programmer, but logically, i think that it should look up for orders_products table for data from products_name subtab. can somebody please help us with this issue. or at least suggest another solution? all i need to sell to the customer an item and to inform him, that he paid this price for this particular item. right now it looks like this: item name: OUR STORE NAME

amount paid: $10.00

quantity: 1

 

And one more thing. i am getting email from paypal, that this customer paid this amount. After it i have to go to the admin panel to see for what exactly this customer have paid. Why paypal does not send and info for what customer paid to the store owner?

Share this post


Link to post
Share on other sites

Hello grandmasterjack and all

 

 

Be happy you are not only 1 in the world have this problem..

 

I'm one of them and we are sure there more out there...

 

---

 

Item

my store name

----

 

hope someone can jump in and help us fix it

 

Thanks


{-- RJ --}

Share this post


Link to post
Share on other sites

Damn! This sucks I'm having the same problem. What sense does it make to code it so that your store name is submitted instead of the item name? And, what's even worst no quick solution to fix it. I feel all you guys pain.

Share this post


Link to post
Share on other sites

I think the answer lies in a modification to paypal_standard.php, but I don't think changing STORE_NAME to Sale is quite right. There is a promising link here - http://forums.oscommerce.com/index.php?sho...39217&st=40 - but it involves modifying paypal.php, not paypal_standard.php, so the code doesn't quite match. It points to a section about 100 lines down, where some hidden fields are being defined.

 

Here is what is proposed for changes in paypal.php:

function process_button() {
global $order, $currencies, $currency;

if (MODULE_PAYMENT_PAYPAL_CURRENCY == 'Selected Currency') {
$my_currency = $currency;
} else {
$my_currency = substr(MODULE_PAYMENT_PAYPAL_CURRENCY, 5);
}
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) {
$my_currency = 'USD';
}
/* Old code
$process_button_string = tep_draw_hidden_field('cmd', '_xclick') .
tep_draw_hidden_field('business', MODULE_PAYMENT_PAYPAL_ID) .
tep_draw_hidden_field('item_name', STORE_NAME) .
tep_draw_hidden_field('amount', number_format(($order->info['total'] - $order->info['shipping_cost']) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('shipping', number_format($order->info['shipping_cost'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('currency_code', $my_currency) .
tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .
tep_draw_hidden_field('cancel_return', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
*/
// new parameters to the $process_button_string
$process_button_string = tep_draw_hidden_field('cmd', '_cart') .
tep_draw_hidden_field('upload', '1') .
tep_draw_hidden_field('business', MODULE_PAYMENT_PAYPAL_ID) .
tep_draw_hidden_field('currency_code', $my_currency) .
tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .
tep_draw_hidden_field('cancel_return', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')) .
tep_draw_hidden_field('shipping_1', number_format($order->info['shipping_cost'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('tax_cart', number_format($order->info['tax'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency)));

for ($i=0; $i<sizeof($order->products); $i++) {
$j = $i+1;
$process_button_string .= tep_draw_hidden_field('item_name_' . $j, $order->products[$i]['name']) .
tep_draw_hidden_field('item_number_' . $j, $order->products[$i]['model']) .
tep_draw_hidden_field('quantity_' . $j, $order->products[$i]['qty']) .
tep_draw_hidden_field('amount_' . $j, $order->products[$i]['final_price']);
}
// end changes
return $process_button_string;
}

 

But here is the analogous code in paypal_standard.php:

	function process_button() {
  global $customer_id, $order, $sendto, $currency, $cart_PayPal_Standard_ID, $shipping;

  $process_button_string = '';
  $parameters = array('cmd' => '_xclick',
					  'item_name' => STORE_NAME,
					  'shipping' => $this->format_raw($order->info['shipping_cost']),
					  'tax' => $this->format_raw($order->info['tax']),
					  'business' => MODULE_PAYMENT_PAYPAL_STANDARD_ID,
					  'amount' => $this->format_raw($order->info['total'] - $order->info['shipping_cost'] - $order->info['tax']),
					  'currency_code' => $currency,
					  'invoice' => substr($cart_PayPal_Standard_ID, strpos($cart_PayPal_Standard_ID, '-')+1),
					  'custom' => $customer_id,
					  'no_note' => '1',
					  'notify_url' => tep_href_link('ext/modules/payment/paypal/standard_ipn.php', '', 'SSL', false, false),
					  'return' => tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL'),
					  'cancel_return' => tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'),
					  'bn' => 'osCommerce22_Default_ST',
					  'paymentaction' => ((MODULE_PAYMENT_PAYPAL_STANDARD_TRANSACTION_METHOD == 'Sale') ? 'sale' : 'authorization'));

  if (is_numeric($sendto) && ($sendto > 0)) {
	$parameters['address_override'] = '1';
	$parameters['first_name'] = $order->delivery['firstname'];
	$parameters['last_name'] = $order->delivery['lastname'];
	$parameters['address1'] = $order->delivery['street_address'];
	$parameters['city'] = $order->delivery['city'];
	$parameters['state'] = tep_get_zone_code($order->delivery['country']['id'], $order->delivery['zone_id'], $order->delivery['state']);
	$parameters['zip'] = $order->delivery['postcode'];
	$parameters['country'] = $order->delivery['country']['iso_code_2'];
  } else {
	$parameters['no_shipping'] = '1';
	$parameters['first_name'] = $order->billing['firstname'];
	$parameters['last_name'] = $order->billing['lastname'];
	$parameters['address1'] = $order->billing['street_address'];
	$parameters['city'] = $order->billing['city'];
	$parameters['state'] = tep_get_zone_code($order->billing['country']['id'], $order->billing['zone_id'], $order->billing['state']);
	$parameters['zip'] = $order->billing['postcode'];
	$parameters['country'] = $order->billing['country']['iso_code_2'];
  }

  if (tep_not_null(MODULE_PAYMENT_PAYPAL_STANDARD_PAGE_STYLE)) {
	$parameters['page_style'] = MODULE_PAYMENT_PAYPAL_STANDARD_PAGE_STYLE;
  }

  if (MODULE_PAYMENT_PAYPAL_STANDARD_EWP_STATUS == 'True') {
	$parameters['cert_id'] = MODULE_PAYMENT_PAYPAL_STANDARD_EWP_CERT_ID;

	$random_string = rand(100000, 999999) . '-' . $customer_id . '-';

	$data = '';
	reset($parameters);
	while (list($key, $value) = each($parameters)) {
	  $data .= $key . '=' . $value . "\n";
	}

	$fp = fopen(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'data.txt', 'w');
	fwrite($fp, $data);
	fclose($fp);

	unset($data);

	if (function_exists('openssl_pkcs7_sign') && function_exists('openssl_pkcs7_encrypt')) {
	  openssl_pkcs7_sign(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'data.txt', MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'signed.txt', file_get_contents(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_PUBLIC_KEY), file_get_contents(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_PRIVATE_KEY), array('From' => MODULE_PAYMENT_PAYPAL_STANDARD_ID), PKCS7_BINARY);

	  unlink(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'data.txt');

// remove headers from the signature
	  $signed = file_get_contents(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'signed.txt');
	  $signed = explode("\n\n", $signed);
	  $signed = base64_decode($signed[1]);

	  $fp = fopen(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'signed.txt', 'w');
	  fwrite($fp, $signed);
	  fclose($fp);

	  unset($signed);

	  openssl_pkcs7_encrypt(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'signed.txt', MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'encrypted.txt', file_get_contents(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_PAYPAL_KEY), array('From' => MODULE_PAYMENT_PAYPAL_STANDARD_ID), PKCS7_BINARY);

	  unlink(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'signed.txt');

// remove headers from the encrypted result
	  $data = file_get_contents(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'encrypted.txt');
	  $data = explode("\n\n", $data);
	  $data = '-----BEGIN PKCS7-----' . "\n" . $data[1] . "\n" . '-----END PKCS7-----';

	  unlink(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'encrypted.txt');

	} else {
	  exec(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_OPENSSL . ' smime -sign -in ' . MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'data.txt -signer ' . MODULE_PAYMENT_PAYPAL_STANDARD_EWP_PUBLIC_KEY . ' -inkey ' . MODULE_PAYMENT_PAYPAL_STANDARD_EWP_PRIVATE_KEY . ' -outform der -nodetach -binary > ' . MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'signed.txt');
	  unlink(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'data.txt');

	  exec(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_OPENSSL . ' smime -encrypt -des3 -binary -outform pem ' . MODULE_PAYMENT_PAYPAL_STANDARD_EWP_PAYPAL_KEY . ' < ' . MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'signed.txt > ' . MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'encrypted.txt');
	  unlink(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'signed.txt');

	  $fh = fopen(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'encrypted.txt', 'rb');
	  $data = fread($fh, filesize(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'encrypted.txt'));
	  fclose($fh);

	  unlink(MODULE_PAYMENT_PAYPAL_STANDARD_EWP_WORKING_DIRECTORY . '/' . $random_string . 'encrypted.txt');
	}

	$process_button_string = tep_draw_hidden_field('cmd', '_s-xclick') .
							 tep_draw_hidden_field('encrypted', $data);

	unset($data);
  } else {
	reset($parameters);
	while (list($key, $value) = each($parameters)) {
	  $process_button_string .= tep_draw_hidden_field($key, $value);
	}
  }

  return $process_button_string;
}

 

I can see that the proposed modification is adding fields for item name, item number, quantity & amount - but since the structure of the change doesn't match the section in paypal_standard.php, I don't trust my php skills enough to just paste it in.

 

Anyone out there who has made this change to the paypal_standard.php file?

Share this post


Link to post
Share on other sites
Damn! This sucks I'm having the same problem. What sense does it make to code it so that your store name is submitted instead of the item name? And, what's even worst no quick solution to fix it. I feel all you guys pain.

install this:

http://addons.oscommerce.com/info/2679 : Paypal IPn for aggregate/itemize

 

It has the needed items details sent.

 

Satish


Ask/Skype for Free osCommerce value addon/SEO suggestion tips for your site.

 

Check My About US For who am I and what My company does.

Share this post


Link to post
Share on other sites
I can see that the proposed modification is adding fields for item name, item number, quantity & amount - but since the structure of the change doesn't match the section in paypal_standard.php, I don't trust my php skills enough to just paste it in.

 

Anyone out there who has made this change to the paypal_standard.php file?

 

I've made a change in my paypal_standard.php so that my Paypal Website Standard module now passes through the item details rather than the store name and order information that goes though in the released version. It also passes the product model number and the name and value of the first two product attributes if they've been used. As far as I'm aware Paypal only supports two optional attributes.

 

To make this work, and to keep the shipping, tax and totals that Paypal displays in line with what was actually ordered, I've had to do a slight fiddle when passing the tax and shipping through. The tax and shipping for the entire order are passed through with the first item; the tax and shipping for all remaining items are set to zero. That was the only way I could find to make Paypal display the order totals correctly.

 

Here's the change (to file includes/modules/payment/paypal_standard.php )

 

Find this

	  $parameters = array('cmd' => '_xclick',
					  'item_name' => STORE_NAME,
					  'shipping' => $this->format_raw($order->info['shipping_cost']),
					  'tax' => $this->format_raw($order->info['tax']),
					  'business' => MODULE_PAYMENT_PAYPAL_STANDARD_ID,
					  'amount' => $this->format_raw($order->info['total'] - $order->info['shipping_cost'] - $order->info['tax']),
					  'currency_code' => $currency,
					  'invoice' => substr($cart_PayPal_Standard_ID, strpos($cart_PayPal_Standard_ID, '-')+1),
					  'custom' => $customer_id,
					  'no_note' => '1',
					  'notify_url' => tep_href_link('ext/modules/payment/paypal/standard_ipn.php', '', 'SSL', false, false),
					  'return' => tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL'),
					  'cancel_return' => tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'),
					  'bn' => 'osCommerce22_Default_ST',
					  'paymentaction' => ((MODULE_PAYMENT_PAYPAL_STANDARD_TRANSACTION_METHOD == 'Sale') ? 'sale' : 'authorization'));

  if (is_numeric($sendto) && ($sendto > 0)) {

 

and replace it with

 

	  $parameters = array('cmd' => '_cart',
					  'upload' => '1',
					  'business' => MODULE_PAYMENT_PAYPAL_STANDARD_ID,
					  'currency_code' => $currency,
					  'invoice' => substr($cart_PayPal_Standard_ID, strpos($cart_PayPal_Standard_ID, '-')+1),
					  'custom' => $customer_id,
					  'no_note' => '1',
					  'notify_url' => tep_href_link('ext/modules/payment/paypal/standard_ipn.php', '', 'SSL', false, false),
					  'return' => tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL'),
					  'cancel_return' => tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'),
					  'bn' => 'osCommerce22_Default_ST',
					  'paymentaction' => ((MODULE_PAYMENT_PAYPAL_STANDARD_TRANSACTION_METHOD == 'Sale') ? 'sale' : 'authorization'));

  for ($i=0; $i<sizeof($order->products); $i++) {
	  $j = $i+1;
		  $parameters['item_name_' . $j] = $order->products[$i]['name'];
	  $parameters['item_number_' . $j] = $order->products[$i]['model'];
	  $parameters['amount_' . $j] = $this->format_raw($order->products[$i]['final_price']);
	  $parameters['quantity_' . $j] = $order->products[$i]['qty'];
	  $parameters['on0_' . $j] = $order->products[$i]['attributes'][0]['option'];
	  $parameters['os0_' . $j] = $order->products[$i]['attributes'][0]['value'];
	  $parameters['on1_' . $j] = $order->products[$i]['attributes'][1]['option'];
	  $parameters['os1_' . $j] = $order->products[$i]['attributes'][1]['value'];
	  // the total shipping and tax values for the order are output against the 
	  // first product, and tax and shipping are set to zero for all subsequent
	  // products. 
	  // the order tax applied to the first product has to be divided by the
	  // quantity for that product because paypal treats this as the tax for 
	  // 1 of that product and will multiply it by the quantity. 
	  if ( $i == 0 ) {
		  $parameters['shipping_' . $j] = $this->format_raw($order->info['shipping_cost']);
		  $parameters['tax_' . $j] = $this->format_raw($order->info['tax']) / $order->products[$i]['qty'];
	  } else {
		  $parameters['shipping_' . $j] = 0;
		  $parameters['tax_' . $j] = 0;
	  }
  }

  if (is_numeric($sendto) && ($sendto > 0)) {

 

While this works i.e. it passes the item details rather than the store name and order details, I'm not sure whether there's anything I've done that makes it any less secure or more hackable than it was before. Any thoughts on that would be appreciated.

 

Anyone wanting to look at the changes in detail might also find this useful : https://www.paypal.com/IntegrationCenter/ic...-reference.html

 

Thanks.

Share this post


Link to post
Share on other sites

I've made a change in my paypal_standard.php so that my Paypal Website Standard module now passes through the item details rather than the store name and order information that goes though in the released version. It also passes the product model number and the name and value of the first two product attributes if they've been used. As far as I'm aware Paypal only supports two optional attributes.

 

To make this work, and to keep the shipping, tax and totals that Paypal displays in line with what was actually ordered, I've had to do a slight fiddle when passing the tax and shipping through. The tax and shipping for the entire order are passed through with the first item; the tax and shipping for all remaining items are set to zero. That was the only way I could find to make Paypal display the order totals correctly.

 

Here's the change (to file includes/modules/payment/paypal_standard.php )

 

Find this

	  $parameters = array('cmd' => '_xclick',
					  'item_name' => STORE_NAME,
					  'shipping' => $this->format_raw($order->info['shipping_cost']),
					  'tax' => $this->format_raw($order->info['tax']),
					  'business' => MODULE_PAYMENT_PAYPAL_STANDARD_ID,
					  'amount' => $this->format_raw($order->info['total'] - $order->info['shipping_cost'] - $order->info['tax']),
					  'currency_code' => $currency,
					  'invoice' => substr($cart_PayPal_Standard_ID, strpos($cart_PayPal_Standard_ID, '-')+1),
					  'custom' => $customer_id,
					  'no_note' => '1',
					  'notify_url' => tep_href_link('ext/modules/payment/paypal/standard_ipn.php', '', 'SSL', false, false),
					  'return' => tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL'),
					  'cancel_return' => tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'),
					  'bn' => 'osCommerce22_Default_ST',
					  'paymentaction' => ((MODULE_PAYMENT_PAYPAL_STANDARD_TRANSACTION_METHOD == 'Sale') ? 'sale' : 'authorization'));

  if (is_numeric($sendto) && ($sendto > 0)) {

 

and replace it with

 

	  $parameters = array('cmd' => '_cart',
					  'upload' => '1',
					  'business' => MODULE_PAYMENT_PAYPAL_STANDARD_ID,
					  'currency_code' => $currency,
					  'invoice' => substr($cart_PayPal_Standard_ID, strpos($cart_PayPal_Standard_ID, '-')+1),
					  'custom' => $customer_id,
					  'no_note' => '1',
					  'notify_url' => tep_href_link('ext/modules/payment/paypal/standard_ipn.php', '', 'SSL', false, false),
					  'return' => tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL'),
					  'cancel_return' => tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'),
					  'bn' => 'osCommerce22_Default_ST',
					  'paymentaction' => ((MODULE_PAYMENT_PAYPAL_STANDARD_TRANSACTION_METHOD == 'Sale') ? 'sale' : 'authorization'));

  for ($i=0; $i<sizeof($order->products); $i++) {
	  $j = $i+1;
	  $parameters['item_name_' . $j] = $order->products[$i]['name'];
	  $parameters['item_number_' . $j] = $order->products[$i]['model'];
	  $parameters['amount_' . $j] = $this->format_raw($order->products[$i]['final_price']);
	  $parameters['quantity_' . $j] = $order->products[$i]['qty'];
	  $parameters['on0_' . $j] = $order->products[$i]['attributes'][0]['option'];
	  $parameters['os0_' . $j] = $order->products[$i]['attributes'][0]['value'];
	  $parameters['on1_' . $j] = $order->products[$i]['attributes'][1]['option'];
	  $parameters['os1_' . $j] = $order->products[$i]['attributes'][1]['value'];
	  // the total shipping and tax values for the order are output against the
	  // first product, and tax and shipping are set to zero for all subsequent
	  // products.
	  // the order tax applied to the first product has to be divided by the
	  // quantity for that product because paypal treats this as the tax for
	  // 1 of that product and will multiply it by the quantity.
	  if ( $i == 0 ) {
		  $parameters['shipping_' . $j] = $this->format_raw($order->info['shipping_cost']);
		  $parameters['tax_' . $j] = $this->format_raw($order->info['tax']) / $order->products[$i]['qty'];
	  } else {
		  $parameters['shipping_' . $j] = 0;
		  $parameters['tax_' . $j] = 0;
	  }
  }

  if (is_numeric($sendto) && ($sendto > 0)) {

 

While this works i.e. it passes the item details rather than the store name and order details, I'm not sure whether there's anything I've done that makes it any less secure or more hackable than it was before. Any thoughts on that would be appreciated.

 

Anyone wanting to look at the changes in detail might also find this useful : https://www.paypal.com/IntegrationCenter/ic...-reference.html

 

Thanks.

Thanks a lot!!!! This was big help even 3 years later...thanks again for your help.

I just wonder if there is any possible way to send the order comments that the user post in oscommerce to the PayPal invoice...so I can see these comments without checking my orders in oscommerce....Thanks so much in advance

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×