我将在我的网站上使用php实现IPN协议。
Paypal documentation请注意该协议如下:
任何人都可以解释为什么协议需要这个[3]步骤?
为什么不能只用[4]步骤来实现它?
另外,我注意到在paypal文档的another章节中,他们自己跳过了这个[3]步骤(参见他们的实现)。所以我想知道,这真的有必要吗?
答案 0 :(得分:2)
只要您的IPN脚本成功完成,就会自动发生200 OK响应。这就是它确实完成的PayPal服务器。
如果PayPal的IPN服务器从您的Web服务器获得200以外的其他内容,它将假定您的脚本失败并将该IPN放入要重新发送的队列中。它将在30秒,然后60秒,然后120秒等重新发送,直到它达到200 OK。
这就是为什么有时人们最终会有重复的IPN。例如,如果你的脚本底部有一些东西,那就失败了,但是你的所有电子邮件通知,数据库更新等在此之前确实有效,你最终会看到这些事情再次发生再次因为PayPal不断重新发送IPN。当然,这可能非常混乱,所以你要确保没有发生。
但是,同样,响应代码会自动从您的Web服务器发送回PayPal。这不是你在代码中必须要做的事情。