diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 77bf0f932..2230ff608 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1180,19 +1180,20 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { .orderPaymentReady(false) .paymentAmount(payRecordEvidence ? payRecordAmount : null) .paymentTime(paymentTime) - .reason("订单主表支付字段不完整") + .reason("订单主表支付字段不完整(payStatus=" + payStatus + + ", payAmount=" + orderBasicInfo.getPayAmount() + + ", payTime=" + orderBasicInfo.getPayTime() + ")") .build(); } - // 订单支付金额 = 充电金额 + 保险金额 - BigDecimal orderPayAmount = orderBasicInfo.getPayAmount() - .add(orderBasicInfo.getInsuranceAmount() == null ? BigDecimal.ZERO : orderBasicInfo.getInsuranceAmount()); - if (payRecordEvidence && !samePaymentAmount(orderPayAmount, payRecordAmount)) { + // payAmount 已通过回调/支付记录设置(微信/支付宝/白名单等),不应再加保险金额(避免双重计算) + if (payRecordEvidence && !samePaymentAmount(orderBasicInfo.getPayAmount(), payRecordAmount)) { return OrderPaymentCheckResult.builder() .checkCompleted(true) .paymentEvidenceFound(true) .orderPaymentReady(false) .paymentTime(paymentTime) - .reason("订单支付明细与订单主表支付金额不一致") + .reason("订单支付明细金额(" + payRecordAmount + + ")与订单主表支付金额(" + orderBasicInfo.getPayAmount() + ")不一致") .build(); } return OrderPaymentCheckResult.builder()