在处理之前如何确保贝宝 IPN 是唯一的?

Posted

技术标签:

【中文标题】在处理之前如何确保贝宝 IPN 是唯一的?【英文标题】:How to ensure paypal IPN's are unique before processing it? 【发布时间】:2012-03-09 16:02:24 【问题描述】:

对于subscr_paymentweb_accept,你必须检查txn_id之前是否已经发送给你。

但是

subscr_cancel, 
subscr_modify, 
subscr_eot, 
subscr_failed, 
subscr_signup

哪里没有txn_id

如果我从贝宝收到subscr_modify 3 次,我的脚本如何知道是否发送了 3 次相同的 IPN,或者用户是否修改了他们的订阅 3 次?

有谁知道如果多次发送相同的 IPN 消息,ipn_track_id 是否保持不变?

【问题讨论】:

【参考方案1】:

如果我从 paypal 获得 subscr_modify 3 次,我的脚本如何知道是否 相同的 IPN 被发送了 3 次,或者如果用户修改了他们的 订阅 3 次?

如果由于服务器 500 错误代码等原因,第一个未使用 Http 200 响应代码回答,或者没有回答,您只会从 PayPal 获得重复的 IPN 响应。

但是怎么样

subscr_cancel, subscr_modify, subscr_eot, subscr_failed, 订阅注册

哪里没有txn_id?

PayPal 文档确实晦涩难懂,但我发现了一个可能有用的链接,它显示了每种 IPN 响应中存在的每个变量的列表: https://www.paypalobjects.com/en_US/ebook/subscriptions/Appx-ipn_subscription_variables.html

subscr_id 可能是您正在寻找的东西,但我不确定它是否会随着每次回复而改变。

【讨论】:

以上是关于在处理之前如何确保贝宝 IPN 是唯一的?的主要内容,如果未能解决你的问题,请参考以下文章

贝宝 IPN 验证

寻找贝宝付款教程[关闭]

Paypal 支付按钮和 IPN:如何唯一地链接用户?

贝宝改变了取消网址的含义吗?或者它是一个错误?

贝宝和用户支付系统

如何在 Magento 中关闭 PayPal IPN?