php 订单支付完成的时间超过订单自动取消时间

1. 订单支付完成的时间超过订单自动取消时间怎么处理

问题描述:下单时间12:00,订单支付超时自动取消时间为30分钟,客户跳转的三方支付后12:45才完成支付,然后会导致支付回调失败。

JensonWang
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 19
Dcatplus-杨光

1.接入第三方支付,都有可以取消支付订单的接口。在系统里面创建定时任务计划,超过30分钟的未支付订单,关闭取消支付(第三方支付),订单关闭取消(业务系统)。

2.上面这种有一定的风险,就是取消支付和用户支付同步了。所以基本上只是关闭订单。

3.第三方支付都会有异步通知,如果收到成功支付的通知,把取消的订单自动恢复。

1周前 评论
QIN秦同学 1周前

这个主要是基于你的业务,如果是商城等为了成单,可以修复订单,毕竟目的是为了成交,如果是对时效要求比较高的订单,可以再支付的时候退款,一楼的做法其实能解决90%的情况,但是退款这一步还是要做兜底~

1周前 评论
x7779a 1周前
JensonWang (楼主) 4天前
JensonWang (楼主) 4天前
sanders

这应该是产品设计问题,也很常见,最简单的处理方案就是给用户在前端一个倒计时,显示还有多久订单就关闭支付了。你看美团外卖就这么干的。

1周前 评论
JensonWang (楼主) 4天前
vacker

这个很简单呀,写一个30分钟后执行的【取消订单队列】,30分钟后队列执行时判断是否支付成功,没有支付就执行取消程序,支付成功就不管了。

1周前 评论
JensonWang (楼主) 4天前
Imuyu 3天前

在天狮产业园?上个月有家外派让我去,那怎么样呢

1天前 评论
JensonWang (楼主) 1天前

天狮集团,咋这么熟悉呢?干啥的

1天前 评论
JensonWang (楼主) 1天前

其实就是一个延时队列,例如12:00分创建订单,同时往延时队列里加入这个任务,如果用户在半小时内未支付,那么到点去执行关闭订单操作。如果用户在半小时内支付,就在延时队列里删除这个任务。

但是可能需要考虑一点,如果大量的延时队列存在,对于系统的压力的问题,以及留够冗余的处理时间。还有有个朋友提到的特殊情况,例如当用户支付过程中,延时队列关闭了订单,那么应该以支付结果为准等。

1天前 评论
JensonWang (楼主) 8小时前

如支付宝、微信 他们的支付订单也有超时时间的吧。超过时间输入支付密码后我记得是会失败的吧。 支付宝文档:opendocs.alipay.com/open/203/10528... time_expire参数:非必填,过期时间,用户多长时间不支付订单关闭,如果不传默认是和签约协议保持一致。

1天前 评论
JensonWang (楼主) 12小时前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!