mirror of
https://gitee.com/dromara/dax-pay.git
synced 2025-09-02 02:34:34 +00:00
fix(reconcile): 修复对账差异逻辑
- 修改 ReconcileDiscrepancyService 中的比较逻辑,解决远程和本地都存在时的差异判断问题 - 修改 WechatPayReconcileService 中的状态处理,确保正确设置交易状态
This commit is contained in:
@@ -140,14 +140,12 @@ public class WechatPayReconcileService {
|
||||
case WxPayConstants.ResultCode.FAIL -> tradeBo.setTradeStatus(TradeStatusEnum.FAIL.getCode());
|
||||
case WxPayConstants.RefundStatus.CHANGE -> tradeBo.setTradeStatus(TradeStatusEnum.EXCEPTION.getCode());
|
||||
}
|
||||
tradeBo.setTradeStatus(TradeStatusEnum.SUCCESS.getCode());
|
||||
}
|
||||
// 撤销状态
|
||||
if (Objects.equals(billDetail.getTradeState(), WxPayConstants.WxpayTradeStatus.REVOKED)) {
|
||||
tradeBo.setTradeType(TradeTypeEnum.PAY.getCode())
|
||||
.setTradeStatus(TradeStatusEnum.REVOKED.getCode());
|
||||
}
|
||||
|
||||
return tradeBo;
|
||||
}
|
||||
|
||||
|
@@ -92,8 +92,8 @@ public class ReconcileDiscrepancyService {
|
||||
discrepancies.add(reconcileAssistService.buildDiscrepancy(statement,channelDetail));
|
||||
continue;
|
||||
}
|
||||
// 如果远程和本地都存在, 比对差异
|
||||
if (this.reconcileDiff(channelDetail, localTrade)) {
|
||||
// 如果远程和本地都存在, 判断是否有差异
|
||||
if (!this.reconcileDiff(channelDetail, localTrade)) {
|
||||
discrepancies.add(reconcileAssistService.buildDiscrepancy(statement, localTrade, channelDetail));
|
||||
}
|
||||
}
|
||||
@@ -109,7 +109,7 @@ public class ReconcileDiscrepancyService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断订单之间存是否有差异
|
||||
* 判断订单之间存是否有差异, 没有差异返回true, 有差异返回false
|
||||
* @param outDetail 下载的对账订单(通道交易)
|
||||
* @param localTrade 本地交易订单(平台交易)
|
||||
*/
|
||||
|
Reference in New Issue
Block a user