链接:https://www.liuniukeji.com/index/liuhongyu
应用场景:
订单设置超过30分钟取消订单,虽然写了定时任务,但是如果用户拉取支付成功后,停留在支付页面的时间过长,超过了30分钟。此时继续支付的话,可以支付成功,但是因为订单状态已取消,回调失败。
为了保持支付订单与项目数据的一致性,需要进行三方支付的支付超时处理。
解决方案:
- 微信支付:
- 支付宝支付
区别:
timeout_express假设在收银台场景,代表的是用户正确输入密码支付宝受理这笔订单业务开始计时15分钟,在已签约支付宝代扣的业务情况下,则是轮询扣费的轮询定时时间,并不是之前臆想的,后端送的请求时间timestamp+timeout_express是过期时间。
这个用户可能就是停留在支付宝收银台页面1h后发起了支付,等支付宝通知的时候,我们的订单已经终态,不会再受理了。
所以后来建议使用的time_expire,这个参数是绝对超时时间,也就是支付宝在time_exipre时间点后,就不会对订单进行受理处理。所以在使用这两个字段前,注意自己的业务场景,看应该使用什么字段。
time_expire缺点:服务器时间和支付宝服务器时间不一致,可能会有延迟。
time_expire优点:app支付是需要正确输入密码之后才会创建交易的,这个时候timeout_express才开始计时,而使用time_expire可以避免这个问题。。
链接:https://www.liuniukeji.com/index/liuhongyu