收藏
回答

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

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

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

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

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

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


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

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

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

2 个回答

  • 微信支付技术助手8
    微信支付技术助手8
    04-20

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

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

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

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

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

    04-20
    有用 2
    回复 3
    • 〰Astorm
      〰Astorm
      04-20
      你应该没明白我的意思。举个例子吧,唤起支付(通过订单号生成新的prepareId),但是不输入密码,取消支付,3小时后,依然可以再次支付。但是唤起支付,并且输入密码支付失败,3小时后,就会出现“订单已失效”
      04-20
      回复
    • Javen
      Javen
      04-20回复〰Astorm
      这个逻辑的出现就有些奇怪了,得等官方给你回复
      04-20
      回复
    • 〰Astorm
      〰Astorm
      04-21回复Javen
      嗯嗯~
      04-21
      回复
登录 后发表内容
问题标签