Paypal IPN返回已在沙盒上验证,但在live上无效

Paypal IPN返回已在沙盒上验证,但在live上无效,paypal,sandbox,paypal-ipn,Paypal,Sandbox,Paypal Ipn,所以我一直在使用贝宝和沙盒模式,一切都很好。然而,当我用真金白银转向live paypal时,IPN返回无效 我在这里使用的是根据我的需要修改的脚本()版本,唯一不同的是db交互等 我在这里发现了这个问题(),这似乎是我遇到的问题,基本上说它与地址可选第二行中的回车有关(在sandbox中的测试帐户上,没有填写)。但是主帖子中的解决方案和评论中的另一个解决方案不起作用,如下所示 $value = preg_replace('/(.*[^%^0^D])(%0A)(.*)/i','${1}%0D%0

所以我一直在使用贝宝和沙盒模式,一切都很好。然而,当我用真金白银转向live paypal时,IPN返回无效

我在这里使用的是根据我的需要修改的脚本()版本,唯一不同的是db交互等

我在这里发现了这个问题(),这似乎是我遇到的问题,基本上说它与地址可选第二行中的回车有关(在sandbox中的测试帐户上,没有填写)。但是主帖子中的解决方案和评论中的另一个解决方案不起作用,如下所示

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

有什么想法吗?快把我逼疯了。它并没有停止支付,但它只是意味着在站点上,必须手动将状态更改为“已支付”

您可以尝试以下操作:

$value = preg_replace('/%0D%0A|%0A/i','%0D%0A',$value);
我对字符
也有问题在自定义字段中。查看发送给PayPall的所有字段。还可以在所有字段中选中任何非A-Z或0-9的字符


您可以尝试的最后一件事是在您的语言编码选项中设置字符集:

检查您的字符集和ssl连接。如果你能发布你的脚本更好:)
$value = preg_replace('/%0D%0A|%0A/i','%0D%0A',$value);