Page 1 of 1

[Tools] - IPN tester PHP script for prestaShop

PostPosted: Fri May 31, 2013 5:08 am
by shokinro
What is this script?
The purpose of this script is to trouble shoot Paypal IPN data in PrestaShop when you use Agile Paypal Express Checkout or the Agile Paypal Adaptive module.
For more information and details about IPN data, please see the link here

Here is the basic flow of Agile Paypal Express Checkout/Payppal Adaptive module:

Customer adds products to their shopping cart ==> Start Checkout ==> Go to Payment site to approve payment ==> Paypal sends IPN data back to PrestaShop - the Agile module catches the IPN data ==> The Agile module will then create the order.

Sometimes, for some unexpected reason - like server failure, server internal error, data base error, or module error, it can cause an IPN posting failure. Usually, Paypal will retry posting the data again for a number of times, until it reaches the maximum number of retries, then it will stop.

When you can use this:
If for some reason the customer payment is successfully processed at Paypal, and the payment status is Completed, but the order is not created by the module at PrestaShop, you can try using this IPN tester page.

How to use this script:
1. Get IPN data from your Paypal account
- My Account
- History
- IPN Hisgtory
- Search for the transaction you want to test
- See the details of the IPN data page, copy the IPN data

2. Download and unzip the file, copy the ipntester.php to following folder:

modules/agilepaypal/ipntester.php (if it is different module, please change the module folder)

3. Run the script by entering the URL of the script.

4. Paste the copyed IPN data from above step 1, and click "Show Submit Form".

5. Click Submit to post the IPN data to the module.

You should see a destination page as follows:

A. empty (white) page, nothing displayed:
If this is the case, usually the order has been successfully created by the module with your posted data.
Go to the PrestaShop back office Orders tab to see if the order was created.

B. The following message is displayed:

"The cart cannot be loaded, or an order has already been placed using this cart."

If this is the case, it means the order has been created before for this IPN data.

C. Any other error message.

In most cases, errors are caused by missing data or the wrong data in customer Paypal account.
Correct the data in the IPN post form, redo the post.

If the IPN data is processed without any error this way, it means the Paypal server is not able to reach your server to post the IPN data.
Something in your store or server configuration is preventing the Paypal server from posting the data.