几天来,我们一直在研究使用 PAYPAL IPN 的网站功能。当我们在 developer.paypal IPN 模拟器中测试我们的 IPN 侦听器时,我们收到一条错误消息“IPN Delivery Failed:500 Internal Server Error”。同样在 sandbox.paypal 帐户的 IPN 历史记录中,我们获得了 500 的 HTTP 响应代码。但是,如果我们将这些代码行从沙箱更改为 paypal,我们将获得 200(已发送)的 HTTP 响应代码。
$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);
两个月前,我开发了一个类似的 IPN 监听器,当我在沙盒中进行测试时,它运行良好。我昨天尝试测试那个 IPN 监听器,它也给了我 500 HTTP 响应代码。我试图在错误日志中查找错误,但没有列出有关最近 HTTP 请求的错误。