mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-08-09 15:53:44 +08:00
修复在线支付保险订单 payAmount 与 payRecordAmount 不一致
在线支付回调(adapayCallback)中主动将 payAmount 减去了 insuranceAmount 再传给回调, 但 order_pay_record 记录的是完整支付金额,导致校验时 payAmount(扣减后) ≠ payRecordAmount(完整)。 修复: 1. OrderService.adapayCallback: callbackDTO 传完整 amount,同时带上 insuranceAmount 2. payOrderSuccessCallback: 下发桩的启动金额用 payAmount - insuranceAmount 计算, 订单主表 payAmount 仍为完整支付金额,与 payRecordAmount 一致
This commit is contained in:
@@ -1299,19 +1299,13 @@ public class OrderService {
|
||||
}
|
||||
}, executor);
|
||||
|
||||
// 初始化充电金额
|
||||
BigDecimal chargeAmount = amount;
|
||||
// 支付订单成功
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
||||
BigDecimal insuranceAmount = orderBasicInfo.getInsuranceAmount();
|
||||
if (insuranceAmount.compareTo(BigDecimal.ZERO) > 0) {
|
||||
// 如果用户支付了保险金额,则充电金额需将保险金额减去
|
||||
chargeAmount = amount.subtract(insuranceAmount).setScale(2, RoundingMode.HALF_UP);
|
||||
}
|
||||
// 支付订单成功
|
||||
PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder()
|
||||
.orderCode(orderCode)
|
||||
.payAmount(chargeAmount) // amount
|
||||
// .payMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())
|
||||
.payAmount(amount) // 完整支付金额(含保险),与 order_pay_record 汇总一致
|
||||
.insuranceAmount(insuranceAmount) // 保险金额,回调中用于计算下发桩的充电金额
|
||||
.payMode(payModel)
|
||||
.acquirer(AcquirerEnum.ADAPAY.getValue())
|
||||
.build();
|
||||
|
||||
Reference in New Issue
Block a user