私たちは、PAYPAL IPN を使用するサイト機能に数日間取り組んできました。developer.paypal IPN シミュレーターで IPN リスナーをテストすると、「IPN Delivery Failed:500 Internal Server Error」というエラー メッセージが表示されます。また、sandbox.paypal アカウントの IPN 履歴では、HTTP 応答コード 500 を取得します。ただし、これらのコード行をサンドボックスからペイパルに変更すると、HTTP 応答コード 200(送信済み) を取得します。
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
//use www.paypal for a live site
//$header .= "Host: www.paypal.com\r\n";
$header .= "Host: www.sandbox.paypal.com\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n";
$header .= "Connection: close\r\n\r\n";
$errstr=$errno='';
$paypalurl='ssl://www.sandbox.paypal.com';
//$paypalurl='ssl://www.paypal.com';
$fp = fsockopen ($paypalurl, 443, $errno, $errstr, 30);
2 か月前、私は同様の IPN リスナーに取り組んでおり、サンドボックスでテストしていたときに問題なく動作しました。昨日、その IPN リスナーをテストしようとしましたが、500 HTTP 応答コードも返されました。エラー ログでエラーを探してみましたが、最近の HTTP 要求に関するエラーは表示されていません。