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

标签 paypal sandbox paypal-ipn

所以我一直在使用 paypal,沙盒模式一切正常。然而,当我用真钱转而使用 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);

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

有什么想法吗?快把我逼疯了。不是停止支付,而是在网站上,将状态更改为已支付必须手动完成

最佳答案

你可以试试这个:

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

自定义字段中的字符 ; 也有问题。查看您发送给 PayPall 的所有字段。还要检查所有字段中不是 A-Z 或 0-9 的任何字符。

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

关于Paypal IPN 返回在沙盒上验证,但在实时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6227279/

相关文章:

c# - 在paypal支付中使用Master和Visa信用卡

javascript - 沙盒 iframe 属性不会阻止 FIrefox 中的重定向

Paypal Express NVP 是否需要 IPN?

php - 地址中嵌入换行符的 Paypal IPN 错误

php - Paypal沙箱-测试支付

c# - 如何通过 PayPal IPN 传递自定义数据

paypal - Payflow Pro SDK - 使用 OrigID 授权交易

ios - 在 iDevice 上的应用程序之间共享数据

objective-c - 来自 Mac App 的 Applescript 显示 "Expected end of line but found\U201c\"\U201d。”

paypal - "PayPal Here"是否发送 IPN 通知?