服务器调用 统一下单API时,有个参数是订单失效时间,参数名time_expire
我的理解,这个参数的作用是,标识用户最晚的支付时间,即用户下单时,没有支付,后来又想支付了,只要不超过这个参数的时间就行了。
我设置的过期时间是下单时间之后的7天
实际测试结果:
1、不超过4~5小时的未支付订单,可以正常的完成支付;
2、超过4~5小时的订单,服务器向小程序返回支付所需参数及签名后,小程序能正常拉起支付界面,但瞬间支付界面消失,通过调试界面看到的报错是:该订单已过期,请重新下单。
请问:
1、我的理解对吗?
2、如果是对的,哪里错了?
3、如果理解不对,那time_expire这个参数有什么用啊?千万不要告诉我这个参数是微信服务器用来删数据用的,那就太坑了。这样商户如何能够保留用户几天之内还未支付的订单呢?
订单过期原因跟订单提交时间,订单过期时间有关;订单时间是开始,加上过期时间,少于现在时间就是过期了
说下单和支付是分开的铁子们,好好看看黑板。小程序支付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){} })
api 里面不是已经解释了:
订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的,由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期,所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。
楼主解决了吗,我也遇到这个问题了
time_expire是针对订单的,但是因为系统返回的prepay_id有效期跟传的time_expire并不同步,所以需要继续支付的话,可以通过订单参数不变重新调一次统一下单生成新的prepay_id才可以重新支付。
是分开的呀。先下单,生成了订单。支付时没有输入密码,返回。就没有完成支付。
然后在小程序里面找到这个未支付订单,继续支付。这个‘然后’的间隔时间超过4~5个小时就不能支付了,我想设置成7天,如果微信默认就只能支持4~5个小时,我就只能改成几个小时了,超过几小时就失效
用户下单和支付是分开的吧!有什么联系呢