1.接入第三方支付,都有可以取消支付订单的接口。在系统里面创建定时任务计划,超过30分钟的未支付订单,关闭取消支付(第三方支付),订单关闭取消(业务系统)。
2.上面这种有一定的风险,就是取消支付和用户支付同步了。所以基本上只是关闭订单。
3.第三方支付都会有异步通知,如果收到成功支付的通知,把取消的订单自动恢复。
这个主要是基于你的业务,如果是商城等为了成单,可以修复订单,毕竟目的是为了成交,如果是对时效要求比较高的订单,可以再支付的时候退款,一楼的做法其实能解决90%的情况,但是退款这一步还是要做兜底~
其实就是一个延时队列,例如12:00分创建订单,同时往延时队列里加入这个任务,如果用户在半小时内未支付,那么到点去执行关闭订单操作。如果用户在半小时内支付,就在延时队列里删除这个任务。
但是可能需要考虑一点,如果大量的延时队列存在,对于系统的压力的问题,以及留够冗余的处理时间。还有有个朋友提到的特殊情况,例如当用户支付过程中,延时队列关闭了订单,那么应该以支付结果为准等。
如支付宝、微信 他们的支付订单也有超时时间的吧。超过时间输入支付密码后我记得是会失败的吧。 支付宝文档:opendocs.alipay.com/open/203/10528... time_expire参数:非必填,过期时间,用户多长时间不支付订单关闭,如果不传默认是和签约协议保持一致。
推荐文章: