Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Official PayPal IPN Support Thread


Mark Evans

Recommended Posts

Version 2.1 has been released

 

Changes:

 

1. Update to "force shipping" -> customer's paypal address included in comment field of order

NB: the PayPal address is NOT necessarily the the osCom shipping address - please check user guide & screenshots fore more information

 

2. update to documentation -> NEW screenshots document added

(quality of screenshots isn't too great as I had to keep file sizes down!)

 

3. Module now includes a footer which is included in emails. Footer text can be defined in language level file (MODULE_PAYMENT_PAYPAL_IPN_TEXT_EMAIL_FOOTER). Default is an empty line.

 

4. AlexStudio's rounding bug error fix has been incorporated with modifications

 

5. AstonK2120's variable naming fix has been applied (previously two variables had same name in ipn.php)

[ref: http://www.oscommerce.com/forums/index.php?s=&...st&p=998771]

 

6. Fixed shipping bug in Aggregate mode where PayPal has it's own shipping set

[ref: http://www.oscommerce.com/forums/index.php?s=&...st&p=999192]

 

Package includes the "empty cart" fix by Monika in Germay posted as update on 2 Jan 2007

 

Remaining issues:

-> problem with pre-populating UK county field for customers without PayPal account

-> If force shipping == True, then customers without PayPal account will have to retype their address

-> The language files could do with translating

-> Integration help files need to be updated due to new code structure

 

To download the contribution go here: http://www.oscommerce.com/community/contributions,2679

 

This completes the bug fixes for the new 2.x version.

 

Terra

Edited by Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

I have installed the contrib (thanks for putting it together and making it so easy to install!!!) but when I use the sandbox version it is not adjusting the shop stock (when it does using other payment methods) and the orders show as completed on the sand box system for both buyer and seller accounts, but the order only shows as preparing in the shop.

 

Any ideas?

 

Thanks

 

Colin G.

Link to comment
Share on other sites

Hello ,

 

If anyone can please help with this I would greatly appreciate it! I have searched and just don't know where to start.

 

I am using the Oscommerce_Paypal_IPN moulde and seem to be having an issue.

 

When a customer first visits the site (No cache , no cookies etc) and then proceeds to checkout everything goes great until they get sent to paypal.

 

Instead of it sending them to the paypal shopping cart its sends them to the https://www.paypal.com/cgi-bin/webscr page , but only is showing a login box and thats it.. (no items nothing)

 

So if I hit back or refresh the confirmation page it then works.

 

It looks like its only building the form url and none of the variables (<form name="checkout_confirmation" action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="image" src="includes/languages/english/images/buttons/button_confirm_order.gif" border="0" alt="Confirm Order" title=" Confirm Order "></form>)

 

When I refresh the confirmation page it then builds the form and works..

 

Please any help would be great..

Edited by L!mit
Link to comment
Share on other sites

Terra, in the 2.1 user guide, there is a mistake with the paragraph about Encrypted Web Payments.

 

It has nothing to do with cURL, and it is in process_button() function, not ipn.php. The reason for this EWP feature is because this module send out the order detail info through user's agent/browser. If they are not encrypted, users can intercept it and alter the order info (e.g. change the total amount to $0.01). Actually this feature should be highly recommended for security reason.

 

cURL only takes place in the module when 'talking' to IPN calls.

Edited by AlexStudio

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

And in the ipn.php starting from line 118. It sets order status to the one which is acknowledged, no matter it is a Completed or Pending...etc, which leads to chaos.

 

The order status was set at default (usually 1, Pending) in line 106. And then if the total amount is good, and the acknowledged order status is not 0, it was changed to acknowledged.

 

If you think that a Pending payment should stay with a Pending order status, then here is a suggestion:

 

Change line 118:

		  if (MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID > 0) {

to:

		  if ($_POST['payment_status'] == 'Completed' && MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID > 0) {

 

Now it will only update order status to your acknowledged status with a completed payment.

 

This is crucial for selling downloads, because it will hold Pending payments staying at Pending, and not to allow instant downloads (additional contributions required, e.g. Downloads Controller v5.3).

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

And in the ipn.php starting from line 118. It sets order status to the one which is acknowledged, no matter it is a Completed or Pending...etc, which leads to chaos.

Alex - not sure how you mean this. The order status changes from "Preparing PayPal IPN" to the one defined in the PayPal module, e.g. in my store "Pending". Please see the READ_ME_screenshots_.html file for an example. I've never worked with Downloads Controller so not sure how this hangs together. Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

... when I use the sandbox version it is not adjusting the shop stock (when it does using other payment methods) and the orders show as completed on the sand box system for both buyer and seller accounts, but the order only shows as preparing in the shop.

PayPal can't "talk" with the ipn.php file in the /ext/ directory. Make sure you copied the file over correctly and that there's not firewall in place which can stop communication. The problem is likely to be server configuration related. Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

Is it as simple as to just overwrite the previous files?? Helle

From the install guide:

Installing the PayPal IPN

 

1. Copy the files in the directory structure set in the contribution download file to your osCommerce installation directory inc. the new /ext/ folder.

2. Make any changes you need to the language level files.

3. Go to the Administration Tool->Modules->Payment section at your osCommerce Administration Tool.

4. Install the PayPal IPN module and configure its parameters. Note: The module is disabled by default so configuration can occur during the operation of a live store.

 

If you already have a version of this PayPal IPN module installed, then you will need to remove the IPN from your admin area first (by clicking "remove") before following the steps above.

 

Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

When I refresh the confirmation page it then builds the form and works..
The action URL with the variables is built in the process_button function on checkout_confirmation.php:

  if (is_array($payment_modules->modules)) {
echo $payment_modules->process_button();
 }

Have you tried a

print_r($payment_modules,true)

on your checkout_confirmation page to check that the variable is set correctly when a customer enters the page? I don't think it's a PayPal IPN issue, looks more like something is wrong with your checkout confirmation page. Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

Terra, in the 2.1 user guide, there is a mistake with the paragraph about Encrypted Web Payments.

Ah yes - changed to "<p>If you have SSL enabled, then you won't need to set up encrypted web payments as the payment module automatically uses SSL if available.</p>" Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

Alex - not sure how you mean this. The order status changes from "Preparing PayPal IPN" to the one defined in the PayPal module, e.g. in my store "Pending". Please see the READ_ME_screenshots_.html file for an example. I've never worked with Downloads Controller so not sure how this hangs together. Terra

ok. I sell downloads, and I installed DC 5.3 (Downloads Controller), and setup an order status 'Payment Completed'. Only those orders with this Completed status have download access granted. Also I set this status to the IPN acknowledged order status. When IPN received with a Completed result, it will update the the order status to 'Payment Completed' and allow download access immediately.

 

The code in ipn.php updates the order status without any condition, which does not make sense. The order status was set at Pending in line 106, which is good and reasonable. But it updates the order status to the acknowledged status (if anything other than 0 is set, let's say 'Payment Completed' = 5 in this scenario), no matter what the payment result it is, every result will get this 'Payment Completed' order status.

 

Pending, Failed, Refunded..... all kinds of result will have this 'Payment Completed' order satus, if the mc_gross matched with the order total record. Is this any good to you?

 

It makes no difference if you set your acknowledged order status to Pending or default, because no matter what payment result you get, the order status always get updated from 'Preparing IPN' to 'Pending'. The point is, it was set at 'Pending' or 'Default' in line 106, so you don't need that acknowledged order status (MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID) to make it 'Pending'. But it makes big difference if you want your acknowledged order status to be something else then Pending, e.g. 'Payment Completed'.

 

My suggestion adds a condition check in line 118, only Completed results can get this acknowledged order status. All other results will stay as Pending which is already set in line 106.

 

Below is a list about what order status you will get with my suggestion

 

payment_status -> order_status

Canceled-Reversal -> Pending

Completed -> MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID

Denied -> Pending

Expired -> Pending

Failed -> Pending

In-Progress -> Pending

Partially-Refunded -> Pending

Pending -> Pending

Processed -> Pending (can this one also be MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID?)

Refunded -> Pending

Reversed -> Pending

Voided -> Pending

 

Doesn't this make more sense to you?

 

If this is still not clear enough, please let me know.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

I think we'd also need a field in the IPN admin area to define a completed status (in addition to the existing preparing and acknowledged status) - I will look into it. Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

Link to comment
Share on other sites

Testing Stage ---

I have SSL on my site.

I Installed osCommerce_PayPal_IPN_v2.1 successfully.

My settings are default except Force shipping address = False

Enable PayPal IPN Module =True

Gateway Server = Live

Transaction Currency = Only USD

 

When a customer is sent to paypal form my site and they have a paypal account . They login into their Paypal account and press the pay button, they are sent back to the PayPal Login Page. Then they Login again to there PayPal account and press the pay button. Then they get the following error:

 

Error Detected

We cannot process this transaction because there is a problem with the PayPal email address supplied by the seller. Please contact the seller to resolve the problem. If this payment is for an eBay listing, you can contact the seller via the "Ask Seller a Question" link on the listing page. When you have the correct email address, payment can be made at www.paypal.com.

 

 

If they have a PayPal account and Enter Credit information in as if they don'thave a PayPal account, they get the following error:

 

We are sorry, we are experiencing temporary difficulties. Please try again later. If this error occurred while making a payment, avoid duplicate payments by checking your Account Overview before resending a payment.

Message 3005

 

If a customer has different information in their account on my site e.g.(address, name, phone, etc.) and then they use their paypal account or type credit information within paypal. Everything works just fine.

 

When Force shipping is = True

Everything works just fine.

 

I would like to know if anyone else is having this problem and may have a solution to it.

Link to comment
Share on other sites

Testing Stage ---

I have SSL on my site.

I Installed osCommerce_PayPal_IPN_v2.1 successfully.

My settings are default except Force shipping address = False

Enable PayPal IPN Module =True

Gateway Server = Live

Transaction Currency = Only USD

 

When a customer is sent to paypal form my site and they have a paypal account . They login into their Paypal account and press the pay button, they are sent back to the PayPal Login Page. Then they Login again to there PayPal account and press the pay button. Then they get the following error:

 

Error Detected

We cannot process this transaction because there is a problem with the PayPal email address supplied by the seller. Please contact the seller to resolve the problem. If this payment is for an eBay listing, you can contact the seller via the "Ask Seller a Question" link on the listing page. When you have the correct email address, payment can be made at www.paypal.com.

If they have a PayPal account and Enter Credit information in as if they don'thave a PayPal account, they get the following error:

 

We are sorry, we are experiencing temporary difficulties. Please try again later. If this error occurred while making a payment, avoid duplicate payments by checking your Account Overview before resending a payment.

Message 3005

 

If a customer has different information in their account on my site e.g.(address, name, phone, etc.) and then they use their paypal account or type credit information within paypal. Everything works just fine.

 

When Force shipping is = True

Everything works just fine.

 

I would like to know if anyone else is having this problem and may have a solution to it.

 

 

If a customer has different information in their account on my site then their PayPal account, I found that when I changed the Address Number from 743 to 742 in their Oscommerce account and the payment was successful with their paypal account.

Link to comment
Share on other sites

Major Bug Fix - Force Shipping and Address Pre-Populated Issue

in v2.1

 

The user guide says:

However this setting currently has one remaining bug as customers without PayPal account will have to re-enter their address. If force shipping is set to FALSE, then order is not eligible for Seller Protection but customers without PayPal account will have their address fields pre-populated.

 

This is caused by the wrong parameters assigned. To fix this issue once and for all, please follow instructions below:

 

Find in file catalog/includes/modules/payment/paypal_ipn.php line 367-368:

	  $state_abbr = tep_get_zone_code($order->delivery['country']['id'], $order->delivery['zone_id'], $order->delivery['state']);
  $name = $order->delivery['firstname'] . ' ' . $order->delivery['lastname'];

Replace with:

	  if ($order->content_type != 'virtual') {
	$state_abbr = tep_get_zone_code($order->delivery['country']['id'], $order->delivery['zone_id'], $order->delivery['state']);
	$name = $order->delivery['firstname'] . ' ' . $order->delivery['lastname'];
  } else {
	$state_abbr = tep_get_zone_code($order->billing['country']['id'], $order->billing['zone_id'], $order->billing['state']);
  }

Find in the same file, 4 lines lower:

	  if (MODULE_PAYMENT_PAYPAL_IPN_SHIPPING == 'True') {
  $parameters['no_shipping'] = '2';   
  $parameters['address_name'] 		= $name;
  $parameters['address_street'] 	= $order->delivery['street_address'];
  $parameters['address_city'] 		= $order->delivery['city'];
  $parameters['address_zip'] 		= $order->delivery['postcode'];
  $parameters['address_state'] 		= $state_abbr;
  $parameters['address_country_code']	= $order->delivery['country']['iso_code_2'];
  $parameters['address_country']	= $order->delivery['country']['title'];
  $parameters['payer_email'] 		= $order->customer['email_address'];		  
 } else {	  
  $parameters['no_shipping'] = '1'; 
  $parameters['H_PhoneNumber'] 		  = $order->customer['telephone'];	  
  $parameters['first_name'] 		= $order->delivery['firstname'];
  $parameters['last_name'] 		= $order->delivery['lastname'];		
  $parameters['address1'] 		= $order->delivery['street_address'];
  $parameters['address2'] 		= $order->delivery['suburb'];
  $parameters['city'] 			= $order->delivery['city'];
  $parameters['zip'] 			= $order->delivery['postcode'];
  $parameters['state'] 			= $state_abbr;
  $parameters['country'] 			= $order->delivery['country']['iso_code_2'];
  $parameters['email'] 			= $order->customer['email_address'];   
	  }

Replace with:

	  if (MODULE_PAYMENT_PAYPAL_IPN_SHIPPING == 'True') {
	$parameters['address_override'] = '1';
  }
  if ($order->content_type != 'virtual') {
	$parameters['no_shipping'] = '2';
	$parameters['H_PhoneNumber'] = $order->customer['telephone'];
	$parameters['address_name'] = $name;
	$parameters['address_street'] = $order->delivery['street_address'];
	$parameters['address_city'] = $order->delivery['city'];
	$parameters['address_zip'] = $order->delivery['postcode'];
	$parameters['address_state'] = $state_abbr;
	$parameters['address_country_code'] = $order->delivery['country']['iso_code_2'];
	$parameters['address_country'] = $order->delivery['country']['title'];
	$parameters['payer_email'] = $order->customer['email_address'];
  } else {	  
	$parameters['no_shipping'] = '1'; 
	$parameters['H_PhoneNumber'] = $order->customer['telephone'];
	$parameters['first_name'] = $order->billing['firstname'];
	$parameters['last_name'] = $order->billing['lastname'];
	$parameters['address1'] = $order->billing['street_address'];
	$parameters['address2'] = $order->billing['suburb'];
	$parameters['city'] = $order->billing['city'];
	$parameters['zip'] = $order->billing['postcode'];
	$parameters['state'] = $state_abbr;
	$parameters['country'] = $order->billing['country']['iso_code_2'];
	$parameters['email'] = $order->customer['email_address'];
  }

 

That's it. Try switching Force Shipping Address TRUE and FALSE, and choose Don't have a PayPal Account at payapl, both with address fields pre-populated. And even more, if the order does not need a shipping, there will not be any shipping info shown at paypal.

 

The Force Shipping Address now becomes an option for that if you want to only ship to the address selected in store (TRUE), or let customers choose from PayPal filed addresses (FALSE). If set this to TRUE, customers will not be able to change shipping address at PayPal.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

Sorry, the above fix didn't work with physial orders. Trying something else now. Please don't use above fix.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

OK, now the fix of above fix, in the last part, replace with:

	  if (MODULE_PAYMENT_PAYPAL_IPN_SHIPPING == 'True') {
	$parameters['address_override'] = '1';
  }
  if ($order->content_type != 'virtual') {
	$parameters['no_shipping'] = '2';
	$parameters['H_PhoneNumber'] = $order->customer['telephone'];
	$parameters['first_name'] = $order->billing['firstname'];
	$parameters['last_name'] = $order->billing['lastname'];
	$parameters['address1'] = $order->billing['street_address'];
	$parameters['address2'] = $order->billing['suburb'];
	$parameters['city'] = $order->billing['city'];
	$parameters['zip'] = $order->billing['postcode'];
	$parameters['state'] = $state_abbr;
	$parameters['country'] = $order->billing['country']['iso_code_2'];
	$parameters['email'] = $order->customer['email_address'];
	$parameters['address_name'] = $name;
	$parameters['address_street'] = $order->delivery['street_address'];
	$parameters['address_city'] = $order->delivery['city'];
	$parameters['address_zip'] = $order->delivery['postcode'];
	$parameters['address_state'] = $state_abbr;
	$parameters['address_country_code'] = $order->delivery['country']['iso_code_2'];
	$parameters['address_country'] = $order->delivery['country']['title'];
	$parameters['payer_email'] = $order->customer['email_address'];
  } else {	  
	$parameters['no_shipping'] = '1'; 
	$parameters['H_PhoneNumber'] = $order->customer['telephone'];
	$parameters['first_name'] = $order->billing['firstname'];
	$parameters['last_name'] = $order->billing['lastname'];
	$parameters['address1'] = $order->billing['street_address'];
	$parameters['address2'] = $order->billing['suburb'];
	$parameters['city'] = $order->billing['city'];
	$parameters['zip'] = $order->billing['postcode'];
	$parameters['state'] = $state_abbr;
	$parameters['country'] = $order->billing['country']['iso_code_2'];
	$parameters['email'] = $order->customer['email_address'];
  }

Tested with shipping and no shipping, Force Shipping Address TRUE and FALSE, all worked now.

 

Cheers! B)

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

Oh, found an issue here. If the customer selected the Confirmed Address on PayPal file, this module didn't update the delivery address in order record, so the packing slip is not correct. I'm working on this issue now, will post the fix in ipn.php very soon.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

OK, now the ipn.php part regarding customers alter shipping address at PayPal, this fix will update order in database with the new shipping address.

 

This fix is the 3rd part of the shipping address bug fix, for v2.1 ONLY.

 

First, let's move the $order class down a little bit, there for it can pick up the new address to be sent in the invoice email.

Find in catalog/ext/modules/payment/paypal_ipn/ipn.php line 85:

	  // let's re-create the required arrays
	 require(DIR_WS_CLASSES . 'order.php');
	 $order = new order($_POST['invoice']);

Cut these 3 lines and paste them right after:(around line 144 after cut)

// If the order is completed, then we want to send the order email and update the stock
if ($_POST['payment_status'] == 'Completed') { // START STATUS == COMPLETED LOOP

 

Then find in around 5 lines above:

		$sql_data_array = array('orders_id' => $_POST['invoice'],
							'orders_status_id' => $order_status_id,
							'date_added' => 'now()',
							'customer_notified' => $customer_notified,
							'comments' => 'PayPal IPN Verified [' . $comment_status . ']');

	tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

Add after:

		if (isset($_POST['address_street']) && tep_not_null(isset($_POST['address_street']))) {
	  $new_address = explode("\n", $_POST['address_street']);
	  tep_db_query("update " . TABLE_ORDERS . " set delivery_name = '" . tep_db_prepare_input($_POST['address_name']) . "', delivery_street_address = '" . tep_db_prepare_input($new_address[0]) . "', delivery_suburb = '" . tep_db_prepare_input($new_address[1]) . "', delivery_city = '" . tep_db_prepare_input($_POST['address_city']) . "', delivery_postcode = '" . tep_db_prepare_input($_POST['address_zip']) . "', delivery_state = '" . tep_db_prepare_input($_POST['address_state']) . "', delivery_country = '" . tep_db_prepare_input($_POST['address_country']) . "'  where orders_id = '" . $_POST['invoice'] . "'");
	}

 

That's it! The shipping address bug now completely fixed.

 

:rolleyes:

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

Oops! I was wrong again. The address sent back via IPN is not the shipping sent out by the confirm button. Don't use the 3rd part above. I will try some other solution.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

Could anyone please tell me how I delete the 'Detailed Invoice' link in the customer's email in the new PayPal IPN Module v1.0 For 2.2MS2? In the old PayPal IPN I scored out the following at line 548:

 

// EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $order_id, 'SSL', false) . "\n" .

Link to comment
Share on other sites

I checked the basic website payment document and found that the variables 'address_name', 'address_street', 'address_city', 'address_zip', 'address_state', 'address_country_code', 'address_country', 'payer_email' do not exist. They were not in v1.1~v1.4 either. Terra probably mixed the IPN/PDT variables with the standard button variables.

 

Currently the shipping address sent with the button code is ok with prepopulated forms, but PayPal always shows a different address in the shipping info section. This behavior actually is stranger than I thought. I tested with Sandbox and Live servers, both got the same result. Even after I deleted that incorrect address in account profile, it still got shown up in the shipping address, and IPN returned that deleted address to me.

 

Here is the detail about what happened in my test:

 

Customer A placed an order with shipping A in my store.

 

IPN module sent shipping address A to PayPal

 

Shipping address A prepopulted the sign-up form

 

A non-existing shipping address B shown in the shipping address section after customer A logged in to PayPal.

 

After paying, IPN returned that non-existing shipping address B.

 

That shipping address B is not in customer A's address book in my store, nor in his paypal profile. It was deleted and no credit card has that billing address.

 

I think this is a bug from PayPal, no way to be fixed in the IPN module code. There for the possible solutions left are 1. not allowing customers to change address at PayPal, by using the variable address_override=1, or 2. no matter the $order->content_type is 'virtual' or not, just set 'no_shipping' = 1 in the button code (no shipping info shown at PayPal).

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

Could anyone please tell me how I delete the 'Detailed Invoice' link in the customer's email in the new PayPal IPN Module v1.0 For 2.2MS2? In the old PayPal IPN I scored out the following at line 548:

 

// EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $order_id, 'SSL', false) . "\n" .

That line has been moved to catalog/ext/modules/payment/paypal_ipn/ipn.php since v2.0(1.5) update.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Link to comment
Share on other sites

Alex - you may want to have a look at the screenshots I uploaded with v2.1. It clearly states that with "force shipping" set to True you have 3 different addresses:

osCom Billing

osCom Shipping

Paypal Shipping

 

Only if PayPal Shipping matches osCom Shipping is the order eligible. All the IPN does, it allow the order to become eligible for seller protection. It doesn't guarantee it. The site owner will still have to check the addresses and also make sure to comply with the other requirements of the seller protection.

 

The PayPal shipping address is the confirmed customer address used when the customer set up their PayPal account. Terra

My code for combining PayPal IPN with ** QTPro 4.25 ** osC Affiliate ** CCGV(trad)

and how to solve the invoice already paid error

General info: Allow customer to delete order comment ** FTP Programs & Text Editors ** Amending order email **

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