订单号生成格式修复后支付回调异常修复:组织ig从pay_order记录中取

This commit is contained in:
gaoqr
2025-10-15 15:50:35 +08:00
parent 6e3f5db169
commit 803836b615
@@ -564,17 +564,16 @@ public class PayOrderServiceImpl implements PayOrderService {
* @param notify * @param notify
*/ */
public void notifyOrder(PayOrderRespDTO notify) { public void notifyOrder(PayOrderRespDTO notify) {
// 从payNo中解析组织id String outTradeNo = notify.getOutTradeNo();
Long organId = getOrganIdFromPayNo(notify.getOutTradeNo());
// 情况一:支付成功的回调 // 情况一:支付成功的回调
if (PayOrderStatusEnum.isSuccess(notify.getStatus())) { if (PayOrderStatusEnum.isSuccess(notify.getStatus())) {
notifyOrderSuccess(notify, organId); notifyOrderSuccess(notify, outTradeNo);
return; return;
} }
// 情况二:支付失败的回调 // 情况二:支付失败的回调
if (PayOrderStatusEnum.isClosed(notify.getStatus())) { if (PayOrderStatusEnum.isClosed(notify.getStatus())) {
notifyOrderClosed(notify, organId); notifyOrderClosed(notify, outTradeNo);
} }
} }
@@ -599,12 +598,11 @@ public class PayOrderServiceImpl implements PayOrderService {
* *
* @param notify * @param notify
*/ */
private void notifyOrderSuccess(PayOrderRespDTO notify, Long organId) { private void notifyOrderSuccess(PayOrderRespDTO notify, String outTradeNo) {
// 1. 判断 PayOrderDO 是否处于待支付 // 1. 判断 PayOrderDO 是否处于待支付
String outTradeNo = notify.getOutTradeNo();
PayOrderDO order = payOrderMapper.selectOne(new LambdaQueryWrapper<PayOrderDO>() PayOrderDO order = payOrderMapper.selectOne(new LambdaQueryWrapper<PayOrderDO>()
.eq(PayOrderDO::getPayNo, outTradeNo) .eq(PayOrderDO::getPayNo, outTradeNo));
.eq(PayOrderDO::getOrganId, organId)); Long organId = order.getOrganId();
if (ObjectUtil.isNull(order)) { if (ObjectUtil.isNull(order)) {
throw exception(PAY_ORDER_NOT_EXIST, outTradeNo); throw exception(PAY_ORDER_NOT_EXIST, outTradeNo);
} }
@@ -734,12 +732,11 @@ public class PayOrderServiceImpl implements PayOrderService {
* *
* @param notify * @param notify
*/ */
private void notifyOrderClosed(PayOrderRespDTO notify, Long organId) { private void notifyOrderClosed(PayOrderRespDTO notify, String outTradeNo) {
// 1. 查询 PayOrderDO // 1. 查询 PayOrderDO
String outTradeNo = notify.getOutTradeNo();
PayOrderDO order = payOrderMapper.selectOne(new LambdaQueryWrapper<PayOrderDO>() PayOrderDO order = payOrderMapper.selectOne(new LambdaQueryWrapper<PayOrderDO>()
.eq(PayOrderDO::getPayNo, outTradeNo) .eq(PayOrderDO::getPayNo, outTradeNo));
.eq(PayOrderDO::getOrganId, organId)); Long organId = order.getOrganId();
if (ObjectUtil.isNull(order)) { if (ObjectUtil.isNull(order)) {
throw exception(PAY_ORDER_NOT_EXIST, outTradeNo); throw exception(PAY_ORDER_NOT_EXIST, outTradeNo);
} }