diff --git a/src/main/java/com/sczx/pay/service/WechatPayService.java b/src/main/java/com/sczx/pay/service/WechatPayService.java index 06ef156..46f8672 100644 --- a/src/main/java/com/sczx/pay/service/WechatPayService.java +++ b/src/main/java/com/sczx/pay/service/WechatPayService.java @@ -259,6 +259,7 @@ public class WechatPayService { reqData.put("total_fee", String.valueOf(paymentRecord.getTotalFee().setScale(2, RoundingMode.HALF_UP) .movePointRight(2) .intValueExact()));// 转换为分 reqData.put("refund_fee", String.valueOf(request.getRefundFee())); reqData.put("notify_url",refundNotifyUrl); + BigDecimal totalFee = paymentRecord.getTotalFee(); // 创建动态配置 @@ -282,7 +283,7 @@ public class WechatPayService { // 记录退款信息到数据库 if ("SUCCESS".equals(result.get("return_code"))) { - recordRefundInfo(request, companyConfig, result); + recordRefundInfo(request, companyConfig, result,totalFee); } return result; @@ -291,13 +292,13 @@ public class WechatPayService { /** * 记录退款信息到数据库 */ - private void recordRefundInfo(RefundRequest request, CompanyWechatConfig companyConfig, Map result) { + private void recordRefundInfo(RefundRequest request, CompanyWechatConfig companyConfig, Map result,BigDecimal totalFee) { try { RefundRecord refundRecord = new RefundRecord(); refundRecord.setCompanyId(request.getCompanyId()); refundRecord.setOutTradeNo(request.getOutTradeNo()); refundRecord.setOutRefundNo(request.getOutRefundNo()); - refundRecord.setTotalFee(new BigDecimal(request.getTotalFee()).divide(new BigDecimal(100))); // 转换为元 + refundRecord.setTotalFee(totalFee); refundRecord.setRefundFee(new BigDecimal(request.getRefundFee()).divide(new BigDecimal(100))); // 转换为元 refundRecord.setRefundDesc(request.getRefundDesc()); refundRecord.setCreateTime(new Date());