在IPN文档中有以下一行:
为了处理传输和接收延迟或故障的可能性,IPN消息服务实现了重试机制,该机制以不同的间隔重新发送消息,直到您确认消息已被成功接收为止。
IPN发出同样的通知9次..。我要送回什么?我的脚本中没有错误。如果我使用IPN模拟器,我会得到以下消息:
IPN发送成功
那么,模拟器似乎可以判断消息被正确发送了,但是真正的通知者却不能?
我正在使用沙箱,如果这有什么区别吗?
收到通知后需要打印什么吗?
发布于 2013-10-30 12:28:52
不需要担心多重通知。首先发送回IPN消息,然后处理它。在处理过程中,检查以前没有处理过txn_id的检查。如果它已经被处理,它是来自Paypal的一个重复的IPN消息,您可以忽略这个处理。有关更多信息,请参阅pdf文件:IPNGuide.pdf
编辑:,我收到通知后需要打印什么吗?不需要打印任何东西,但是如果你想记录细节,你可以记录它们。来自我上面提到的pdf文件(第10页)
您的侦听器必须响应每条消息,无论您是否打算对它做任何事情。,如果您不响应,PayPal假设消息没有收到并重新发送消息。PayPal继续定期重新发送消息,直到侦听器将正确的消息发回,尽管每次转发消息之间的间隔都会增加。这条消息可以持续四天之久。此重发算法可能导致PayPal在发送回原始消息时重新发送IPN消息的情况。在这种情况下,您应该再次发送您的响应,以涵盖PayPal第一次没有实际收到您的响应的可能性。还应确保不处理与消息关联的事务两次。的重要性: PayPal期望在30秒内收到对IPN消息的响应。在响应IPN消息之前,侦听器不应该执行耗时的操作,例如创建进程。
请参阅第19-20页您的侦听器软件必须
发布于 2013-10-31 09:02:19
你的IPN脚本发生了一些事情,导致它失败了很多。这可能发生在脚本的最底层,因此您希望看到的一切都会发生,但随后将500个错误发送回PayPal。
您是否检查了您的PayPal IPN历史记录,看看它在那里显示了什么?你可能会看到很多错误。此外,您还需要检查您的web服务器日志,以查看当该脚本被击中时发生的错误。
可能只有在某些命令下才会发生。例如,我经常看到有人在做数据库更新或类似的事情,像O‘’Reilly这样的名字破坏了他们的脚本,因为他们没有正确地处理撇号。
查看您的web服务器日志应该会显示错误发生在哪里,然后您可以运行一些测试来帮助解决问题。我喜欢创建一个基本的HTML表单,将操作设置为我的IPN侦听器,然后添加与我期望在IPN中得到的内容相匹配的隐藏字段。通过这种方式,您可以将其加载到浏览器中,并直接将各种值发布到浏览器中,这样您就可以在屏幕上查看结果。请记住,如果您以这种方式进行测试,那么IPN将不会被验证,因为它不是来自PayPal,因此您需要确保您的代码已经安装好,以便相应地处理。
发布于 2017-10-17 12:06:09
您必须用一个空的200个响应来响应,以指示PayPal在将响应数据处理为
public function yourIpnHandler(){
//response verification and processing goes here
header("HTTP/1.1 200 OK");
}在得到一个空的200个响应后,PayPal将不会发送更多的响应,因为它知道响应已成功地传递到ipn处理程序。
https://stackoverflow.com/questions/19682013
复制相似问题