Paypal IPN延迟了几个小时

问题描述 投票:4回答:1

我正在使用paypal自适应支付通过paypal进行交易。虽然很少有交易花费超过6小时也会收到IPN。

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

“因为IPN不是实时服务,所以在允许完成之前,您的结账流程不应等待IPN消息。如果结账流程依赖于接收IPN消息,则处理可能因系统负载或其他原因而延迟你应该配置你的结账流程来处理可能的延迟。“

回调花了6个多小时太多了。有什么建议 ?

paypal paypal-ipn paypal-adaptive-payments
1个回答
0
投票

我已经建了几个自定义推车。平均而言,我看到PayPal IPN在最长的2分钟内回来,并且通常定期付款的时间比单次付款要长,因为它们在初始设置时发送两条IPN消息,而不仅仅是一条消息。我通常采用'自定义'属性并添加一个我永久烹饪的唯一标识符。所以,即使我可能看到一个初始的IPN进行定期付款,我等待那个说txn_typesubscr_payment而且payment_statusCompleted。除非您看到第二条消息,否则您无法真正信任订阅付款。如果这是一次付款,那么我寻找txn_typeweb_acceptpayment_statusCompleted

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

© www.soinside.com 2019 - 2024. All rights reserved.