【问题标题】:Paypal IPN returns verified on sandbox, but invalid on livePaypal IPN 返回在沙盒上验证,但在现场无效
【发布时间】:2011-09-07 19:25:31
【问题描述】:

所以我一直在使用贝宝,沙盒模式一切正常。然而,当我使用真钱转到 live 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/),这似乎是我遇到的问题,基本上说它与地址的可选第二行中的回车有关(在沙盒中的测试帐户上,未填写)。但是主帖中的解决方案和 cmets 中的另一个解决方案不起作用,如下所示

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

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

有什么想法吗?快把我逼疯了。它不会停止付款,而只是意味着在网站上,必须手动将状态更改为已付款

【问题讨论】:

  • 检查您的字符集和 ssl 连接。如果你能发布你的脚本更好:)

标签: paypal sandbox paypal-ipn


【解决方案1】:

你可以试试这个:

$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

【讨论】:

    猜你喜欢
    • 2010-12-01
    • 2015-08-14
    • 2014-09-30
    • 2013-07-17
    • 2013-01-11
    • 2012-04-26
    • 2016-01-24
    • 2012-10-28
    相关资源
    最近更新 更多