收藏
回答

微信支付成功后 回调 商户订单号不一致?

jsapi支付 用户点击支付 后台通过统一下单接口 生成 out_trade_no 商户订单号 返回微信json 拉起支付 ,支付成功后 有时会出现 回调里面的 out_trade_no 与数据库中的 不一样 导致 无法进行后续处理。 时而会出现这种情况, 用户如果 点击支付 通过下单接口 获取 微信支付json 弹起 支付框 在关闭支付框 重新在下单 获取一个新的支付json 同时也生成一个新的out_trade_no 存入数据库 ,输入密码支付成功 会出现 回调out_trade_no 不一致吗 ? 我自己测试是没有出现过 。但是对账时候 时而会发现几个订单会有这样问题

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

3 个回答

  • Memory
    Memory
    03-07

    自己上报实时日志再定位问题吧,不是生成订单逻辑有问题就是调起支付逻辑有问题

    03-07
    有用
    回复
  • 老张
    老张
    03-07

    只能是自己的代码逻辑的问题,

    生成新out_trade_no,更新订单,返回更新成功后,再去拉起支付。

    03-07
    有用
    回复 1
    • .
      .
      03-07
      代码现在就是这样的处理呀
      03-07
      回复
  • Affection
    Affection
    03-07

    以前遇到过此类问题,是因为数据库本身开了读写分离,更新进去新的out_trade_no后,实际用户在老的out_trade_no下已经支付过,所以微信支付回调里体现的是老的out_trade_no,实际数据库里存入的是新的out_trade_no,导致订单查不到,可以按照此方向去检查问题

    03-07
    有用
    回复 2
    • .
      .
      03-07
      他这个 拉起支付弹框的json 是在把out_trade_no 写入数据库后 返回的 , 应该不会出现 如果支付成功回调的out_trade_no 应该不会不一致的
      03-07
      回复
    • .
      .
      03-07
      这个问题 之前觉得是 用户支付时候 可能网络较慢 导致 在第一个支付json返回 拉起支付弹框 前 又调用了一下 下单接口 导致数据库out_trade_no更新  这个问题已经解决过了 。昨天又出现了一笔 回调不一致的订单
      03-07
      回复
登录 后发表内容