From a4bc4768c29886907b6aa8225236141e3af76472 Mon Sep 17 00:00:00 2001
From: Cui Zhi Feng <cuizf@fengyuntec.com>
Date: 星期五, 27 九月 2024 21:49:10 +0800
Subject: [PATCH] 退款代码 微信接口调用顺序调整
---
src/main/java/com/mzl/flower/service/payment/OrderService.java | 6 +++---
src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java | 19 ++++++++++---------
2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java
index 64182c8..710cea2 100644
--- a/src/main/java/com/mzl/flower/service/payment/OrderService.java
+++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -1426,15 +1426,15 @@
deductAmount = deductAmount.add(a.getDeductAmount());
}
+ o.setTransferTime(LocalDateTime.now());
+ o.update(SecurityUtils.getUserId());
+
transferId = "NoNeedRefund";
if (deductAmount.doubleValue() > 0) {
transferId = paymentV3Service.refundOrderSub(o, deductAmount);
}
o.setTransferId(transferId);
- o.setTransferTime(LocalDateTime.now());
- o.update(SecurityUtils.getUserId());
orderMapper.updateById(o);
-
}
public void processLevelDown(OrderReduceDTO dto) {
diff --git a/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java b/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java
index e93b82a..5461255 100644
--- a/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java
+++ b/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java
@@ -540,15 +540,6 @@
request.setTransactionId(o.getPaymentTrId());
request.setNotifyUrl(PyamentV3Configurer.notify_url_refund);
- AmountReq amount = new AmountReq();
- int oa = prepareAmount(o.getPaymentAmount());
- amount.setTotal((long)oa);
- amount.setRefund((long)oa);
- amount.setCurrency("CNY");
- request.setAmount(amount);
- // 调用接口
- refundService.create(request);
-
o.setRefundAmount(o.getPaymentAmount());
o.setRefundNo(request.getOutRefundNo());
o.setRefundTime(LocalDateTime.now());
@@ -562,6 +553,16 @@
deliveryOrderService.refundDelete(orderId);
releasePrepayLock(o);
+
+ //最后调用微信退款接口,防止回滚
+ AmountReq amount = new AmountReq();
+ int oa = prepareAmount(o.getPaymentAmount());
+ amount.setTotal((long)oa);
+ amount.setRefund((long)oa);
+ amount.setCurrency("CNY");
+ request.setAmount(amount);
+ // 调用接口
+ refundService.create(request);
}
public String refundOrderSub(Order o, BigDecimal refundAmount){
--
Gitblit v1.9.3