From 89db573c1b753ad197c2ce35430048ba4b18505d Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 07 Feb 2025 16:03:51 +0800
Subject: [PATCH] refactor(pay): 优化 FIUU 支付回调逻辑

---
 src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java |   25 +++++++++++--------------
 1 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java b/src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java
index c162297..a4e7930 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java
@@ -145,15 +145,13 @@
         ValidateEntityUtils.ensureNotEqual(mallOrderInfo.getPayResult(), "1", "订单已支付");
         ValidateEntityUtils.ensureEqual(mallOrderInfo.getAmount().toString(), amount, "订单金额异常");
         // 更新订单状态
-        if ("00".equals(status)) {
-            mallOrderInfo.setPayMethod("FIUU支付");
-            mallOrderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
-            mallOrderInfo.setPayResult("1");
-            mallOrderInfo.setPayTime(DateUtil.parseDateTime(paydate));
-            mallOrderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
-            mallOrderInfo.setPayOrderNo(tranID);
-            mallOrderInfoMapper.updateById(mallOrderInfo);
-        }
+        mallOrderInfo.setPayMethod("FIUU支付");
+        mallOrderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
+        mallOrderInfo.setPayResult("1");
+        mallOrderInfo.setPayTime(DateUtil.parseDateTime(paydate));
+        mallOrderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
+        mallOrderInfo.setPayOrderNo(tranID);
+        mallOrderInfoMapper.updateById(mallOrderInfo);
     }
 
     // Java 通知接口 暂时停止使用
@@ -174,20 +172,19 @@
         String calculatedSkey = DigestUtils.md5Hex(paydate + domain + preSkey + secretKey);
         MallOrderInfo mallOrderInfo = ValidateEntityUtils
                 .ensureColumnReturnEntity(orderId, MallOrderInfo::getId, mallOrderInfoMapper::selectOne, "订单不存在");
+        log.info("callback status: {}", status);
+        log.info("callback skey: {}", preSkey);
+        log.info("callback calculatedSkey: {}", calculatedSkey);
         log.info("callback payResult: {}", mallOrderInfo.getPayResult());
         if("1".equals(mallOrderInfo.getPayResult())){
             return new FebsResponse().success().data("/pages/order/pay/paySuccess?amount="+ amount +"&type=3");
         }
 
-        log.info("callback skey: {}", preSkey);
-        log.info("callback calculatedSkey: {}", calculatedSkey);
-
         if (!calculatedSkey.equals(skey)) {
             throw new FebsException("订单回调失败,---"+orderId);
         }
-
-        updateOrderStatus(orderId, status, amount, paydate, tranID);
         if ("00".equals(status)) {
+            updateOrderStatus(orderId, status, amount, paydate, tranID);
             return new FebsResponse().success().data("/pages/order/pay/paySuccess?amount="+ amount +"&type=3");
         }else{
             return new FebsResponse().fail().message("支付失败");

--
Gitblit v1.9.1