Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Store title instead of item on Paypal page


grandmasterjack

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!!

Link to comment
Share on other sites

  • 2 weeks later...
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.

Link to comment
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.

Link to comment
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!!

Link to comment
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?

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

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://www.oscommerce.com/forums/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?

Link to comment
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.

Link to comment
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.

Link to comment
Share on other sites

  • 3 years later...

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...