V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
phpfpm
V2EX  ›  全球工单系统

救救孩子,支付宝支付的关单逻辑简直是不知所谓

  •  
  •   phpfpm · 23 天前 · 937 次点击

    简单描述下问题。

    我们目前只用到了支付宝的二维码扫码支付这一个产品,会涉及到重试关单的逻辑。

    情况 1:正常调用下单,用户扫码可以正常支付

    情况 2:正常调用下单,但是用户尚未扫码的时候我们关单,此时用户侧会提示支付失败

    以上用户侧体验都符合预期,但是服务端关单和查单接口不正常。

    情况 2-服务端-未扫码关单:

    如果用户尚未扫码我们就关单,会提示关单失败( 40004 ,交易失败),但是此时用户已经不可交易了。

    如果用户扫码触发提醒“支付失败,本笔交易已关闭,请收银员重新收款。”,之后再次关单,会提示关单成功。

    用户扫码之前,查询订单,会提示“交易不存在”ACQ.TRADE_NOT_EXIST

    用户在扫码之后,查询订单,会提示“等待支付”WAIT_BUYER_PAY

    无论是用户扫码之前还是用户扫码之后,我们调用 PreCreate 预下单的接口,都可以正常得到 qrcode 的地址

    所以以上情况发生了什么?

    一旦我们自身的代码出现任何问题,一个单在用户有访问之前我们就提早关单但是并未记录,无论用户是否扫码我们都不能感知到这个单已经被关了——扫码之前查单提示交易不存在,扫码之后查单提示等待支付;预下单始终是成功的;用户拿到的 qrcode 始终是不能支付的

    请问——这合理么?

    Light3
        1
    Light3  
       22 天前
    这个跟支付宝没什么关系
    支付宝只负责收款和告知你收款成功
    至于你的什么关单 谁家订单不都是 30 分钟支付等待?
    你说的交易不存在 你也说了 是扫码之前 那这种情况你为什么不用异步通知呢?
    等待支付更简单 用户在输入密码 这个也可以异步通知来改订单状态

    你不会只会调同步接口 循环查订单支付状态吧?
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4888 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 09:42 · PVG 17:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.