From 2eca1f6a796d749b30c9b0b50add31d3eb1e93bf Mon Sep 17 00:00:00 2001 From: Guoqs <123456@jsowell.com> Date: Sat, 25 Jul 2026 13:26:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BD=99=E9=A2=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E4=BF=9D=E9=99=A9=E8=AE=A2=E5=8D=95=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=87=AD=E8=AF=81=E6=A0=A1=E9=AA=8C=EF=BC=9A=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=9A=84=E4=BF=9D=E9=99=A9=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E5=8F=8C=E9=87=8D=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit d3273438b 提交在余额支付路径也加了保险金额,但余额支付的 payAmount 已通过 payOrderSuccessCallback 累加(可能已含保险),再加一次 insuranceAmount 会导致双重计算,永远校验失败。 - 余额支付路径:直接比较 payAmount vs payRecordAmount(不加保险) - 非余额支付路径:保持 payAmount + insuranceAmount vs payRecordAmount(正确) --- .../pile/service/impl/OrderBasicInfoServiceImpl.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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 0ddddbbc2..7af1df1b3 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 @@ -1137,10 +1137,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { .reason("订单支付明细与会员钱包出账金额不一致") .build(); } - // 订单支付金额 = 充电金额 + 保险金额 - BigDecimal orderPayAmount = orderBasicInfo.getPayAmount() - .add(orderBasicInfo.getInsuranceAmount() == null ? BigDecimal.ZERO : orderBasicInfo.getInsuranceAmount()); - if (!baseFieldsReady || !samePaymentAmount(orderPayAmount, payRecordAmount)) { + // 余额支付:payAmount 已通过回调累加(可能含保险),payRecordAmount 仅含余额支付记录, + // 直接比较两者即可,不应再加保险金额(避免双重计算) + if (!baseFieldsReady || !samePaymentAmount(orderBasicInfo.getPayAmount(), payRecordAmount)) { return OrderPaymentCheckResult.builder() .checkCompleted(true) .paymentEvidenceFound(true)