V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moxuanyuan
V2EX  ›  PHP

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

  •  
  •   moxuanyuan · 2020-12-09 04:12:53 +08:00 · 2168 次点击
    这是一个创建于 1446 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先贴一个 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 条回复    2020-12-09 09:38:30 +08:00
    ben1024
        1
    ben1024  
       2020-12-09 09:38:30 +08:00
    个人理解
    1.paypal 回调与客户端无关
    2.在接收回调处理流程和接收过程异常三方不负责
    3.再处理订单时先进行主动确认验证
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3000 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:02 · PVG 21:02 · LAX 05:02 · JFK 08:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.