【发布时间】:2011-03-25 07:42:00
【问题描述】:
我正在测试使用 Web 支付标准和 HTML 变量将网站集成到 Paypal。
我编写了一个简单的 PHP 脚本来处理 IPN 通知。
根据Paypal documentation,一旦您将收到的数据 ping 回 Paypal,Paypal 服务器就会以简单的“VERIFIED”或“INVALID”响应进行响应。
在我的处理程序中,我正在对这两个关键字进行区分大小写的字符串比较,如果未找到这些已知关键字中的任何一个,则将其视为错误。
<?php
$fp = fsockopen ($socket_url, 80, $errno, $errstr, 10);
if (!$fp){
// SOCKET ERROR
return false;
}
else {
fputs ($fp, $header . $req);
$is_ok = false;
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp("VERIFIED",$this->ipn_response)==0) {
//do something ...
}
// if the IPN POST was 'INVALID'
else if (strcmp ($res, "INVALID") == 0) {
fclose ($fp);
return false;
}
else {
echo "Unknown response from Paypal: $res";
fclose ($fp);
return false;
}
}
fclose ($fp);
return true;
}
?>
我的错误消息显示我收到了来自 Paypal 的“HTTP/1.1 200 OK”响应。
来自 Paypal 的未知回复: 'HTTP/1.1 200 正常'
PayPal API 是否发生了变化,还是我做错了什么?
【问题讨论】:
标签: php paypal paypal-ipn