Paypal IPN返回在沙盒上验证,但在实时无效

时间:2011-06-03 12:48:11

标签: paypal sandbox paypal-ipn

所以我一直在使用paypal,沙盒模式一切正常。然而,当我用真钱转移到支付宝贝时,IPN会返回INVALID。

我在这里使用了一个版本的脚本(https://cms.paypal.com/cms_content/US/en_US/files/developer/IPN_PHP_41.txt),根据我的需要进行了修改,只有不同的位是数据库交互等等。

我在这里找到了这个问题(http://www.hebtech.co.uk/blog/paypal-ipn-invalid-on-live-server-but-valid-on-test-server-fixed/)这似乎是我遇到的问题,并且基本上说它与地址的可选第二行中的回车有关(在测试帐户中沙箱,没有填写)。但主帖中的解决方案和评论中的另一个解决方案不起作用,如下所示

$value = preg_replace('/(.*[^%^0^D])(%0A)(.*)/i','${1}%0D%0A${3}',$value);

OR

$value = preg_replace('/(.*?)(%0D%0A|%0A)(.*)/i','${1}%0D%0A${3}',$value);

有什么想法吗?让我发疯它不会停止支付,但它只是意味着在网站上,将状态更改为付费必须手动完成

1 个答案:

答案 0 :(得分:0)

你可以尝试这个:

$value = preg_replace('/%0D%0A|%0A/i','%0D%0A',$value);

我在自定义字段中的字符;也有问题。查看您发送到PayPall的所有字段。同时在所有字段中检查任何非A-Z或0-9的字符。

您可以尝试的最后一件事是在您的语言编码选项中设置charset:https://www.paypal.com/cgi-bin/webscr?cmd=_profile-language-encoding