3
votes

Everything worked before the TLS 1.2 sandbox update.

But I've confirmed that my server is using TLS 1.2. PayPal's TLS test is successful. And my IPN script can correctly receive PayPal's handshake and data.

But when sending the postback data, it always gets invalid, with no other error message. This is in the sandbox using the IPN simulator.

Using the exact same code as PayPal's example IPN listener for PHP.

I've tried all the IPN troubleshooting I could find, including:

  1. Set purchase date to NULL
  2. Set curl_setopt($ch, CURLOPT_SSLVERSION, 6);
  3. Set IPN data to UTF-8 in paypal's settings
  4. Sending postback to https://ipnpb.sandbox.paypal.com/cgi-bin/webscr
  5. Sending data with cmd=_notify-validate and file_get_contents('php://input')

Any ideas?

1

1 Answers

6
votes

Contacted PayPal and they say their IPN Simulator is not working!

This is the last time I assume a major development tool by a huge corporation like PayPal would not be broken and unreported. Happens regularly with them.

"The IPN simulator is currently returning a "verify_sign=undefined" response. We have let our engineering team know, and they will get to work on fixing this tool. Your IPN script if fine, the test payments triggering an IPN confirm as much. So sorry about the confusion and the IPN Simulator not functioning correctly. I can keep your ticket open with me until I have an update on the simulator if you'd like, and I can let you know when it is fixed."