收藏
回答

app二次唤起微信支付,支付成功用的是第一次唤起的支付信息?

用户(Mate 30 Pro, android10)使用我们app:

第一次唤起微信支付用的out_trade_no=20240221124420542101010130

第二次唤起微信支付用的out_trade_no=20240221124425542101010164

服务端收到的推送用的是第一次的out_trade_no,导致服务端无法找到对应的订单。

我试了几次自己的android(Realme GTNeo3, android14),都是用的第二次的out_trade_no。

是什么原因导致用户支付时使用第一次的out_trade_no?


最后一次编辑于  02-21
回答关注问题邀请回答
收藏

3 个回答

  • Affection
    Affection
    02-21

    有种情况,如果你的库是读写分离的,极有可能在第二次外部订单号更新后,立刻去读取最新的,但是读取的其实还是第一次的外部订单号,这属于读写分离延迟,倒是有概率导致用户实际用的第一次的外部订单号去支付的,所以微信支付回调也是第一次的外部订单号

    02-21
    有用
    回复 2
    • momo
      momo
      02-21
      每次获取支付信息的时候更新out_trade_no到数据库中,然后才唤起微信支付。
       应该是用户唤起了微信支付,实际用的第一次的out_trade_no支付成功。
      02-21
      回复
    • Affection
      Affection
      02-21回复momo
      知道你的意思,你调用微信支付接口,用的是从库里读取的数据,还是根据你的订单号规则生成的数据,如果是从库里读取的数据,并且使用了读写分离,有概率会出现读取的是上一次的老数据
      02-21
      回复
  • momo
    momo
    02-21

    用的微信版本8.0.45,看了下是最新版本

    02-21
    有用
    回复
  • Memory
    Memory
    02-21

    有可能是用户调起微信没有支付,后面打开微信还停留在了付款页面,然后用户进行了付款操作

    02-21
    有用
    回复 3
    • momo
      momo
      02-21
      我有这么操作过,用的是最新的支付信息。
      不晓得会不会和手机。
      02-21
      回复
    • momo
      momo
      02-21
      不晓得会不会和手机有关
      02-21
      回复
    • Memory
      Memory
      02-21回复momo
      会和手机也有关系的
      02-21
      回复
登录 后发表内容