收藏
回答

Android调起微信支付时,一段时间内如果多次提交订单,总是调起第一次提交的商品付款

视频如下:

http://getawayfile.ldstark.com/Yfp2IPJmLeAResdaoM3FegUqLrlpBHFP/%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98.mp4


然后发现几个规律:

1、如果调用api接口取消订单,则会提示【订单已关闭,无法支付】,也就是取消订单并没有用

2、如果在取消支付后,前往微信开启一个别的界面,再重新发起支付,就不会用之前的支付价格,否则可能会使用前一次发起支付的价格;

3、或者等待5分钟后再发起微信支付也可以显示新的商品

从2和3来看,应该是微信支付的缓存机制造成的


我的后端是用PHP,使用的是v1版本的微信支付api,已经确认过每次客户端调用支付的时候都是重新下单的,并且从后端返回的也是新的订单信息,不存在自己的后端返回了错误信息的情况。


请问有没有遇到过类似问题的朋友,可以指导一下如何解决吗?

微信的小伙伴能指导一下如何排查吗?


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

1 个回答

  • Memory
    Memory
    06-19

    通过你视频来看,你应该两次使用了同样调起支付的参数,在你录屏操作里面没有看到微信缓存的问题

    06-19
    有用
    回复 6
    • 彭露!
      彭露!
      06-19
      我打日志看了的,绝对可以排除用同样的参数调起支付的问题,这个肯定是最初就要排除的
      06-19
      回复
    • Memory
      Memory
      06-19回复彭露!
      从你描述的2、3以及视频可以推断你前端有可能缓存了支付调起参数
      06-19
      回复
    • Memory
      Memory
      06-19回复彭露!
      抓包看了一下,你多次使用的调起支付参数均为同一个
      06-19
      回复
    • 彭露!
      彭露!
      06-19
      啊?抓包看了一下?你是打错字了吗?
      06-19
      回复
    • 彭露!
      彭露!
      06-19回复Memory
      没有的,客户端没有任何缓存,每次都是直接调用php创建新订单,然后拿新的订单参数调起微信支付的
      06-19
      回复
    查看更多(1)
登录 后发表内容