!893 解决订单同步任务引起的对已关闭的订单成功支付的问题

Merge pull request !893 from 杨宇庆/N/A
This commit is contained in:
芋道源码 2024-03-01 00:58:30 +00:00 committed by Gitee
commit 18415b1a20
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -477,6 +477,14 @@ public class PayOrderServiceImpl implements PayOrderService {
return false;
}
PayOrderRespDTO respDTO = payClient.getOrder(orderExtension.getNo());
// 如果查询到订单不存在payClient返回的状态为关闭但此时不能关闭订单存在以下一种场景
// 拉起渠道支付后短时间内用户未及时完成支付但是该订单同步定时任务恰巧自动触发了主动查询结果为订单不存在
// 当用户支付成功之后该订单状态在渠道的回调中无法从已关闭改为已支付造成重大影响
// 考虑此定时任务是异常场景的兜底操作因此这里不做变更优先以回调为准
// 让订单自动随着支付渠道那边一起等到过期确保渠道先过期关闭支付入口而后通过订单过期定时任务关闭自己的订单
if (PayOrderStatusRespEnum.isClosed(respDTO.getStatus())) {
return false;
}
// 1.2 回调支付结果
notifyOrder(orderExtension.getChannelId(), respDTO);