paypal ipn通知两次

时间:2010-09-21 08:30:01

标签: paypal

我的通知脚本首先启动两次是VERIFIED,第二次是INVALID。

我尝试过不同的ipn验证脚本并且总是两次。

我使用沙盒可能卖家帐户设置不对?我已经通过通知网址和自动返回设置了IPN。同样在表单中有return和notify_url set

2 个答案:

答案 0 :(得分:3)

我记得在文档中它指出重复是可能的 - 这只是互联网的本质。这就是它为您提供唯一交易ID的原因。如果你得到两次通知,你应该用它来防止坏事发生。

更好的问题可能是:为什么说“已验证”然后“无效”?或者那可以吗?

修改

The docs说“PayPal会发回一个单词,如果邮件来自PayPal则为VERIFIED,如果与最初发送的内容有任何差异,则为INVALID”。我猜你的代码会意外地将“回声”发送回PayPak两次,其中一个是格式错误的。也许它们都是相同的,但如果它获得两次,PayPal会以INVALID响应。但无论如何,对于特定的交易ID,一旦您获得VERIFIED,您就会很好。完全忽略所有后续回复。

编辑2

PayPal简单地使用返回网址将用户重定向回您的网站。使用此页面感谢他们购买并告知他们,一旦处理完成,他们将收到通知。如果您不想要此功能,甚至可以将其设置为空字符串。当付款实际完成(或发现某些问题)时,PayPal将调用通知网址引用的脚本。这是您确保一切正常,处理重复通知,更新数据库,向用户发送电子邮件说明其付款已处理等的地方。

答案 1 :(得分:0)

在插入或更新mysql查询之前,请检查返回的事务ID'$ _POST ['txn_id']'是否已存在于您的数据库表中,如果不存在,则将其与其他$ _POST数据一起插入,因为paypal会调用notify网址很多次。