收藏
回答

【稳定重现】订单支付提示“订单已失效,请重新返回商户下单支付”

背景:以前就偶尔会出现这种问题,但一直没头绪,之前发帖问了也没什么结果。直到今天终于自己能重现了(之前是其它用户出现的)

支付方式:小程序微信支付,每次点支付都是通过订单号生成新的prepareId

操作步骤:1、对一个订单唤起支付,选择没钱的银行卡,输入支付密码,后面会提示说没钱了

2、等一段时间(虽然我们expireTime设置了5分钟,但我还是等了3个小时再试)

3、重试支付,点支付,选卡,输入密码。就出现如图的问题了


说明一下:1、如果唤起支付后不输入密码,直接取消支付,那不论隔多久重试支付都是正常的。(我怀疑就是输入密码支付的话,微信端会记录单号)

2、所以这块是不是适合做成:如果微信支付失败的话(比如我例子中的卡没钱),就不记录单号。

回答关注问题邀请回答
收藏

4 个回答

  • Javen
    Javen
    2020-04-20

    支付的时候当然要验证订单号,你设置了过期时间 5 分钟,等 3个小时再去支付当然会出现订单失效。

    不是记不记录单号的问题,而是订单已超时失效了。如果还想继续支付建议不要设置过期时间或者把过期时间设置长一点即可。

    如果对你有帮助请点击「有用」告知

    2020-04-20
    有用 2
    回复 4
    • 〰Astorm
      〰Astorm
      2020-04-20
      你应该没明白我的意思。举个例子吧,唤起支付(通过订单号生成新的prepareId),但是不输入密码,取消支付,3小时后,依然可以再次支付。但是唤起支付,并且输入密码支付失败,3小时后,就会出现“订单已失效”
      2020-04-20
      回复
    • Javen
      Javen
      2020-04-20回复〰Astorm
      这个逻辑的出现就有些奇怪了,得等官方给你回复
      2020-04-20
      回复
    • 〰Astorm
      〰Astorm
      2020-04-21回复Javen
      嗯嗯~
      2020-04-21
      回复
    • 桂岗
      桂岗
      2021-04-01回复〰Astorm
      是你的逻辑出了问题,不是微信官方有BUG,你唤醒支付,没有输入密码,此时这个订单还是存在终端,也就是用户的手机端,还没提交到微信后端,当然你唤醒无数次都没有关系,因为只要你没有输入密码,这个订单其实没有提交微信后台。如果你是做后端开发的,这个逻辑应该好理解啊
      2021-04-01
      1
      回复
  • Sorry
    Sorry
    2023-04-11

    楼主 你这个问题解决了吗

    2023-04-11
    有用
    回复
  • 高宏宇
    高宏宇
    2020-10-21

    你设置5分钟等3小时 ??????


    2020-10-21
    有用
    回复
  • 微信支付技术助手8
    微信支付技术助手8
    2020-04-20

    订单的有效期,只和你设置的参数有关。和你是否输入密码。并无直接关联。

    2020-04-20
    有用
    回复 1
    • 〰Astorm
      〰Astorm
      2020-04-20
      代码没变过。唤起支付(通过订单号生成新的prepareId),但是不输入密码,取消支付,3小时后,依然可以再次支付。但是唤起支付,并且输入密码支付失败,3小时后支付,就会出现“订单已失效”。反之,如果唤起支付,不输入密码,直接取消支付,那隔多久都能继续支付。
      2020-04-20
      回复
登录 后发表内容
问题标签