Paypal IPN callback not working since migrating website - paypal

We have migrated a bespoke php website to a new server on a new IP address. Since then the Paypal IPN system does not callback to the website so orders don't get updated etc. Could someone please give me some ideas of what to check on the webserver. Why would this stop working once the website has been moved to a new IP?

Ok it seems to be working now. It must have been related to the domain IP change taking time to propogate through the internet.

Related

paypal ipn no longer working

I tried finding an answer here but can not.
I've been using this code to process PayPal IPN for over a decade! Now, as of July 2018 it no longer works!
https://github.com/paypal/ipn-code-samples/blob/master/asp/paypal_ipn.asp
The only thing I know that is different recently is that PayPal required my domain to use TLS 1.2. I asked my hosting company to make sure that it now uses that, and they made some change to make sure. Ever since then, the listener I have set up does not process the IPN correctly. The code always falls into this IF:
if (objHttp.status <> 200 ) then
And never falls into this ELSEIF the way it used to when it was working fine:
elseif (objHttp.responseText = "VERIFIED") then
I'm not even sure how to troubleshoot this at this point. Is it something about the TLS 1.2? How can I make sure my hosting company set that up correctly?
Does my listener have to be located at an HTTPS url on my site? (Right now it is on HTTP).
Thanks.
In February, I got an email notice from Paypal that IPN would no longer validate successfully via an HTTP callback, and would further require HTTPS/SSL to validate. Update your script to connect this way, and it will probably fix it.
This PHP example should give a reasonable example.
Line 142:
" $fp = fsockopen("ssl://www.paypal.com",443,$err_num,$err_str,30);"
I had similar issues previously when connecting to Paypal on port 80.

Updating paypal call back URL

We have recently moved our drupal website which is integrated with our CiviCRM database. We're having a bit of a problem getting our payment processors to communicate back to our database to confirm when a payment is completed.
Our call back URL has changed. The api.Paypal.com IP addresses have been added to the white list but I need to update paypal with the new call back URL.
I can't work out where I need to do that at all! Can anyone tell me?
Thank you!

FireFox Security Warning using Pay Pal v0.51

I am using the PHP Toolkit for PayPal v0.51
I have setup Pay Pal sandbox accounts and done a test to the ipn.php that comes back as working ok.
I have set the config.inc.php to suit my settings
PHP Version 5.3.3-7+squeeze15 mysql and cURL installed all is working fine.
When using with IE
everything works fine, the transaction is returned to the success.php and in the ipn_success.php
I have it updating the database with the information posted back from Pay Pal.
When using Firefox
Everything works fine till I get to the part where it returns me back to the success.php
I get a Security Warning box open up with the below information within it.
Although this page is encrypted, the information you have entered is to be sent over an unencrypted connection and could easily be read by a third party.
Are you sure you want to continue sending this information?
If I click the warning straight away I get the information posted back and the database is updated.
If I leave this warning for a few seconds, I lose all the information that is posted back to the site for the database.
How can I stop this security warning from showing when using Firefox
The website is using http and not using https so Pay Pay is posting back to a non ssl site.
This is actually a known issue with FireFox that we are currently looking into. If you would like to be notified once the issue is resolved, you can open up a ticket with PayPal's Merchant Technical Support. PPXO-7400

Paypal old programmer missing old sandbox

I have old Sandbox business & personal accounts that stopped working. I have to go back and test a site I developed two years ago. I saw a reference to importing these accounts on the new site but every link seems to go in circles. I certainly can't afford time to rewrite all my client's api's even if they would pay me just to go into testing mode.
Can someone suggest how I might revive these accounts.
There are currently some issues that are being addressed to resolve this issue. As a workaround try using FireFox or Chrome if you were using IE. Clear your cookies and chache prior to opening up that browhwer. Then go to developer.paypal.com and log in with your live PayPal account email address. Then try importing your accounts. There have been more issues with IE than the other browsers.

PayPal IPN testing

I'm trying to get this PayPal IPN tutorial to work:
http://net.tutsplus.com/tutorials/php/using-paypals-instant-payment-notification-with-php
I setup everthing and now I'm in the PayPal sandbox and sending with the "Instant Payment Notification (IPN) simulator" a message to my "ipn.php" and nothing happends.
The databse is still empty and I don't get a notification email.
I'm totally stuck with this. What can I do to find the error?
Thanks
Michael
Make sure your listener is on port 80. It is undocumented, but the paypal IPN simulator will fail to send to any other port.
The tutorial URL does not open for me, I get a "No input file specified.".
My first suggestion would be to open the PHP script that processes the PayPal IPN and write the following in the beginning:
file_put_contents('dump.txt', print_r($_POST, true));
Ensure you have write permissions in the directory that holds the script because "dump.txt" file will be created there. This way you can see what PayPal sends to you and give you a starting debugging point.
Also check your web server error log for PHP errors that might be happening to you. The tutorials are often written long time ago, on different systems, different PHP version, etc.
Edit: Also you probably already know this but the IPN processing script should be publicly accessible, not some localhost stuff.