gpt4 book ai didi

paypal - IPN延迟和SAAS应用

转载 作者:太空宇宙 更新时间:2023-11-03 16:27:42 24 4
gpt4 key购买 nike

我有一个 SAAS 网络应用程序,需要支付订阅费才能使用。如果订阅有效,一切正常,否则应用程序将进入只读模式,直到客户续订订阅。我已经使用 PayPal API 开发了支付流程。

问题是 PayPal 文档是这样说的:

"Although PayPal usually processes IPN messages immediately, IPN is not synchronized with actions on your website. Internet connectivity is not always 100% reliable and IPN messages can be lost or delayed. The IPN service automatically resends messages until the listener acknowledges them. The service resends messages for up to 4 days.
Because IPN is not a real-time service, your checkout flow should not wait for the IPN message before it is allowed to complete. If the checkout flow is dependent on receiving an IPN message, processing can be delayed by system load or other reasons. You should configure your checkout flow to handle a possible delay."

不幸的是,这正是我的情况:当客户续订订阅时,我需要立即激活应用程序,所以我将所有逻辑都放在“通知回调”中,我必须在其中创建订单、发送确认电子邮件、更新一些 session 变量...但我如果 PayPal IPN 有延迟,这是一个问题!这几天我在沙盒模式下做了一些测试,在一些情况下,我什至在成功支付后 4 小时就得到了 IPN 的答复!这对我的应用来说是 Not Acceptable !

最后的问题是:我的案例的最佳解决方案是什么?将应用程序激活从“通知回调”移动到“成功回调”是否有意义?可能有问题?

谢谢

最佳答案

不要为此使用 IPN;它不太合适,而且不是为了插入同步用户体验流程而设计的。它作为一种启动离线履行的方式效果很好,但如果客户正在积极等待访问,则可能会延迟他们。

您无需指定您使用的是哪种 PayPal 产品,但每种产品都应提供一种方式来立即向您反馈付款已完成。例如,对于 Express Checkout 或任何基于 API 的支付,您可以在收到成功的 API 响应(在 Express Checkout 的情况下为 DoEC API)时采取行动(激活/重新激活订阅)。

对于仅限网络/非 API 的产品,当客户重定向到您的 return_url 时,您可以采取行动,如果需要,使用 PDT 安全地获取有关交易的信息(它可以包括您回发的 IPN 样式 key 向 PayPal 进行验证,就像您使用 IPN 所做的那样)。

如果您担心有人在浏览器重定向到您之前关闭浏览器的极端情况,或者其他某种连接中断或编程错误,您可以检查并激活/完成收到 IPN 以捕获任何后果。因此,所有完成正常支付流程的客户都会立即被激活;如果他们做了一些奇怪的事情(或者你的代码被破坏了,或者其他什么),那么激活仍然会发生,尽管可能会延迟几秒钟或几分钟。

关于paypal - IPN延迟和SAAS应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com