我收到PayPal发来的消息称,在我的某个网站上,我必须确保将HTTPS用于验证回发。另一个具有相同代码的网站没有收到这样的消息,并且使用Sandbox,我认为这意味着验证是正确的。
我的代码如下。我需要更改吗?
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
// post back to PayPal system to validate
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n";
$header .="Host: www.paypal.com\r\n";
$header .="Connection: close\r\n\r\n";
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
答案 0 :(得分:2)
如果电子邮件说您应该回发到https,那么$ fp应该是这样的 -
$ fp = fsockopen(' ssl://www.paypal.com',443,$ errno,$ errstr,30);
希望这会有所帮助。我和IPN打了几天噩梦。