Paypal IPN / Webhook 异步回调流程是怎样的?

2020-12-09 04:12:53 +08:00
 moxuanyuan

先贴一个 stackoverflow 的问题《 Can Paypal trigger IPN / Webhook without processing data from return_url?》

里面提到的内容跟我遇到的差不多,我使用的是 Omnipay Paypal 包。

我之前直以为只要用户在 paypal 端完成支付,无论是否跳转回网站执行同步回调,IPN / Webhook 异步回调都会执行,通知服务器付款交易信息。

事实,如果没有执行同步回调,更准确说,没向 paypal 发出 DoExpressCheckoutPayment API 指令,异步回调是一直都不会执行。

问题是,用户在 paypal 端完成支付后,能否跳转回网站执行同步回调,这个是不可靠的,因为用户端可能因为网络原因,无法跳转回网站,或者此时服务器 down 了没法完成 DoExpressCheckoutPayment API 指令,那么此时交易就一直不能完成。在 paypal 的商户账户交易记录页面上也看不到这笔交易。

我现在费解,究竟 paypal 交易流程就是这样,还是我 paypal 设置和代码有问题才这样?

几年前也做过简单 paypal 支付的开发,但当时只是直接使用 paypal sdk,参考了 sdk 提供的 example,没考虑周全,没深入研究。

正常的支付交易流程是怎样的?开发需要考虑什么?

2163 次点击
所在节点    PHP
1 条回复
ben1024
2020-12-09 09:38:30 +08:00
个人理解
1.paypal 回调与客户端无关
2.在接收回调处理流程和接收过程异常三方不负责
3.再处理订单时先进行主动确认验证

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/733558

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX