先贴一个 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,没考虑周全,没深入研究。
正常的支付交易流程是怎样的?开发需要考虑什么?
1
ben1024 2020-12-09 09:38:30 +08:00
个人理解
1.paypal 回调与客户端无关 2.在接收回调处理流程和接收过程异常三方不负责 3.再处理订单时先进行主动确认验证 |