From 15700b74778de49ba11745ca1dfd7bbf1356ba42 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 27 九月 2024 22:44:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2' into master-v2

---
 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