我的通知脚本启动了两次,第一次是已验证,第二次是无效。
我尝试过不同的 ipn 验证脚本,但总是得到两次。
我正在使用沙箱,也许卖家帐户设置不正确?我已将 IPN 设置为通知 url 和自动返回。同样在表单中设置了 return 和 notification_url
最佳答案
我记得文档中指出重复是可能的——这就是互联网的本质。这就是为什么它为您提供了唯一的交易 ID。如果您收到两次通知,您应该使用它来防止不好的事情发生。
更好的问题可能是:为什么先显示“已验证”,然后显示“无效”?或者这样可以吗?
编辑
The docs说“PayPal 发回一个字,如果消息源自 PayPal,则该字为已验证;如果与最初发送的内容有任何差异,则该字为无效”。我猜测您的代码意外地将“回声”发送回 PayPak 两次,其中一次格式错误。也许它们都是相同的,但如果 PayPal 收到两次,则会返回 INVALID。但无论如何,对于特定的交易 ID,一旦获得验证,就可以了。只需忽略所有后续响应即可。
编辑2
PayPal 仅使用返回网址将用户重定向回您的网站。使用此页面感谢他们的购买,并告知他们处理完成后他们将收到通知。如果您不想要此功能,您甚至可以将其设置为空字符串。当付款实际完成(或发现某些问题)时,PayPal 将调用通知 URL 引用的脚本。您可以在此处确保一切正常、处理重复的通知、更新数据库、向用户发送电子邮件说明其付款已处理等。
关于paypal IPN 通知两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3758521/