我对IPN系统中PayPal收到的VERIFIED字符串有一个奇怪的问题。 我使用PHP来检查付款的有效性。 截至昨天下午5点,一切正常。 但是在最后两次付款时,我的脚本无法再拯救“已验证”的字符串。 在这里,你是我的剧本:
[...]
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
[...]
if (!$fp)
{[...]
}
else
{fputs ($fp, $header . $req);
while (!feof($fp))
{$res = fgets ($fp, 1024);
$ResTotale .= $res;
if (strcmp ($res, "VERIFIED") == 0)
{// Payment ok!
[...]
}
[...]
}
直到昨天,我们从PayPal收到了这些数据:
[...]
domain=.paypal.com VERIFIED
[...]
通过最后两笔付款,我们收到了:
[...]
8
VERIFIED
0
[...]
该脚本将此付款标记为无效。 我改变了“strcmp”if语句:
if ((strcmp ($res, "VERIFIED") == 0) || (strcmp (trim($res), "VERIFIED") == 0) || (trim($res) == "VERIFIED"))
有谁能告诉我这个脚本是否有效? 提前谢谢。
答案 0 :(得分:3)
请检查Paypal IPN sends back VERIFIED but with numbers before and after
此外,评估应该包括trim()
if(strcmp(trim($ res),“VERIFIED”)== 0)
请参阅:https://ppmts.custhelp.com/app/answers/detail/a_id/926/kw/http%201.1
答案 1 :(得分:1)
我遇到了同样的问题,发现一个非常简单的工作我改变了功能:
if (strcmp ($res, "VERIFIED") == 0) {
通过
if (strpos($res,'VERIFIED') !== false) {
因此,使用strcmp的任何地方都必须更改为strpos。
我希望这会对你们中的一些人有所帮助:)。
Mouns
答案 2 :(得分:0)
我知道这是旧的,但我遇到了同样的问题,唯一对我有用的是使用$nextTick()
。
希望它有所帮助。