收藏
回答

订单失效时间问题--小程序支付

服务器调用  统一下单API时,有个参数是订单失效时间,参数名time_expire

我的理解,这个参数的作用是,标识用户最晚的支付时间,即用户下单时,没有支付,后来又想支付了,只要不超过这个参数的时间就行了。

我设置的过期时间是下单时间之后的7天

实际测试结果:

1、不超过4~5小时的未支付订单,可以正常的完成支付;

2、超过4~5小时的订单,服务器向小程序返回支付所需参数及签名后,小程序能正常拉起支付界面,但瞬间支付界面消失,通过调试界面看到的报错是:该订单已过期,请重新下单。


请问:

1、我的理解对吗?

2、如果是对的,哪里错了?

3、如果理解不对,那time_expire这个参数有什么用啊?千万不要告诉我这个参数是微信服务器用来删数据用的,那就太坑了。这样商户如何能够保留用户几天之内还未支付的订单呢?

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

6 个回答

  • 朱建宇
    朱建宇
    07-03

    说下单和支付是分开的铁子们,好好看看黑板。小程序支付API里传的package是什么不就是prepay_id吗!这个prepay_id是服务端调用微信支付通下单接口获取的然后返给客户端的,prepay_id官方文档已经说了最长有效期两个小时,所以设置time_expire大于两小时的情况下,支付最多两个小时就会超时,服务端就要重新获取prepay_id,重新返给小程序客户端,客户端再重新调用wx.requestPayment支付API发起支付。

    wx.requestPayment(
    {
    'timeStamp''',
    'nonceStr''',
    'package''prepay_id=''',
    'signType''MD5',
    'paySign''',
    'success':function(res){},
    'fail':function(res){},
    'complete':function(res){}
    })
    
    07-03
    有用
    回复
  • 云烟雾霰
    云烟雾霰
    2019-12-06

    api 里面不是已经解释了:

    订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的,由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期,所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id

    2019-12-06
    有用
    回复
  • 殷玉娇
    殷玉娇
    2018-11-18

    楼主解决了吗,我也遇到这个问题了

    2018-11-18
    有用
    回复 2
  • 波
    2018-01-10

    time_expire是针对订单的,但是因为系统返回的prepay_id有效期跟传的time_expire并不同步,所以需要继续支付的话,可以通过订单参数不变重新调一次统一下单生成新的prepay_id才可以重新支付。

    2018-01-10
    有用
    回复
  • 曾进军
    曾进军
    2017-12-26

    是分开的呀。先下单,生成了订单。支付时没有输入密码,返回。就没有完成支付。

    然后在小程序里面找到这个未支付订单,继续支付。这个‘然后’的间隔时间超过4~5个小时就不能支付了,我想设置成7天,如果微信默认就只能支持4~5个小时,我就只能改成几个小时了,超过几小时就失效

    2017-12-26
    有用
    回复
  • L、
    L、
    2017-12-26

    用户下单和支付是分开的吧!有什么联系呢

    2017-12-26
    有用
    回复
登录 后发表内容