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

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

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

JensonWang
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 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 (楼主) 6小时前

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

22小时前 评论
JensonWang (楼主) 10小时前

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