首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Paypal IPN延迟数小时

Paypal IPN延迟数小时
EN

Stack Overflow用户
提问于 2016-01-26 19:44:16
回答 1查看 1.5K关注 0票数 7

我正在使用贝宝自适应支付通过贝宝进行交易。虽然很少有交易需要超过6个小时才能收到IPN。

我浏览了论坛帖子和他们的文档,我通过- https://developer.paypal.com/webapps/developer/docs/classic/products/instant-payment-notification/

由于IPN不是实时服务,您的签出流程不应等待IPN消息完成。如果签出流程依赖于接收IPN消息,则处理可能会因系统负载或其他原因而延迟。您应该配置您的签出流程以处理可能的延迟。

回调耗时超过6个小时实在是太多了。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2019-03-02 13:44:48

我已经做了几个定制的手推车。平均而言,我看到PayPal IPN最长在2分钟内返回,而且通常循环支付比单次支付花费更长的时间,因为他们在初始设置时发送两个IPN消息,而不仅仅是一个。我通常使用'custom‘属性,并放置一个我永久保存的唯一标识符。所以,即使我可能会看到一个初始的IPN来自于一个循环付款,我也会等待那个标明txn_typesubscr_payment并且payment_statusCompleted的IPN。除非您看到第二条消息,否则您不能真正相信订阅付款是已支付的。如果是单次支付,那么我会将txn_type设置为web_accept,将payment_status设置为Completed

我的处理方式是使用表单按钮技术将客户重定向到PayPal进行购买。客户付款,然后被重定向到我指定的自定义购物车URL (这要归功于我最初创建的表单隐藏变量)。我把这个URL称为支付确认脚本。我显示一条带有进度条的消息,请稍候,同时与PayPal确认他们的付款。我把它们放在那里10秒,然后重定向到收据。它在收据上,我检查数据库,看看我的IPN脚本是否已经处理了这个订单。如果没有,我会再次将它们重定向到支付确认脚本,再延迟10秒的进度条。我的收据使用会话cookie来确保我不会将它们发送到一个循环中超过一次到支付确认脚本。因此,客户又等待了10秒,然后返回到收据页面,在那里我再次测试,读取我保存的'custom‘属性上的永久cookie,而不是来自数据库中用作订单键的IPN的'custom’属性。通常在第一个或第二个10秒的延迟内,IPN已经进入,我可以继续。但是,如果IPN仍然没有进来,那么我会重定向到一个友好的错误消息,指出他们的付款无法确认,并打电话给我们的呼叫中心来解决这个问题。然后,我们的呼叫中心技术人员看到PayPal中的延迟问题,取消其他交易,并通过电话手动向客户销售。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35013099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档