mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-08-10 00:03:44 +08:00
修复余额支付保险订单支付凭证校验:回退错误的保险金额双重计算
d3273438b 提交在余额支付路径也加了保险金额,但余额支付的 payAmount
已通过 payOrderSuccessCallback 累加(可能已含保险),再加一次
insuranceAmount 会导致双重计算,永远校验失败。
- 余额支付路径:直接比较 payAmount vs payRecordAmount(不加保险)
- 非余额支付路径:保持 payAmount + insuranceAmount vs payRecordAmount(正确)
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user