在IPN文档中有这样一行:
为了处理传输和接收延迟或失败的可能性,IPN消息服务实现了一种重试机制,该机制以不同的间隔重新发送消息,直到您确认消息已成功接收为止.
IPN发送相同的通知9次...我需要发回什么?我的脚本没有错误.如果我使用IPN模拟器,我会收到以下消息:
IPN发送成功
那么似乎模拟器可以告诉消息正在正确发送但真正的通知器不能?
我使用沙盒,如果这有什么区别?
收到通知后是否需要打印任何内容?
Dam*_*ran 11
无需担心多重通知.首先发回IPN消息然后处理它.处理时检查先前未处理过txn_id的检查.如果已经处理,则它是来自Paypal的重复IPN消息,您可以忽略该处理.有关更多信息,请参阅pdf文件: IPNGuide.pdf
编辑: 收到通知后是否需要打印任何内容?无需打印任何内容,但如果要记录详细信息,则可以记录它们.从我上面提到的pdf文件(第10页)
您的听众必须回复每条消息,无论您是否打算对其进行任何操作. 如果您没有回复,PayPal会假定未收到该消息并重新发送该消息.PayPal会定期重新发送消息,直到您的侦听器发回正确的消息,尽管重新发送的消息之间的间隔每次都会增加.该消息最多可以重发四天.此重新发送算法可能导致PayPal在您发回原始邮件时重新发送IPN邮件的情况.在这种情况下,您应该再次发送您的回复,以涵盖PayPal第一次没有真正收到您的回复的可能性.您还应确保不要两次处理与消息关联的事务.重要提示:PayPal希望在30秒内收到对IPN消息的响应.在响应IPN消息之前,您的侦听器不应执行耗时的操作,例如创建进程
请参阅第19-20页.您的监听软件必须
等待来自PayPal的HTTP帖子.
创建一个请求,该请求包含完全相同的IPN变量和值,顺序为cmd = _notify-validate.
将请求发布到paypal.com或sandbox.paypal.com,具体取决于您是在线还是在沙箱中测试您的听众.
等待来自PayPal的响应,该响应是VERIFIED或INVALID.
如果响应是VERIFIED,请执行以下检查:
确认付款状态为"已完成".PayPal也会发送待处理和拒绝付款的IPN消息; 在付款清算之前不要发货.
使用事务ID验证事务尚未处理,从而防止处理重复事务.
通常,您将事务ID存储在数据库中,以便您知道您只处理唯一的事务.
验证接收者的电子邮件地址是否已注册.此检查提供额外的防欺诈保护.
验证价格,商品描述等是否与您网站上的交易相匹配.此检查提供额外的防欺诈保护.
如果验证的响应通过了检查,则根据txn_type变量的值(如果存在)执行操作; 否则,根据reason_code变量的值采取行动.
如果响应为INVALID,请保存该消息以供进一步调查
| 归档时间: |
|
| 查看次数: |
6180 次 |
| 最近记录: |