From dbdc1ed6a3ecdcb20981b9e84200c69424444d6d Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 06 Feb 2025 15:59:20 +0800
Subject: [PATCH] feat(payment): 集成 FIUU 支付方式并优化退款流程

---
 src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 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 462cc83..e419e3e 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java
@@ -64,7 +64,7 @@
             params.put("bill_desc", productNames);
             params.put("currency", "MYR"); // 默认 MYR
             params.put("vcode", vcode);
-            params.put("returnurl", returnUrl);
+//            params.put("returnurl", returnUrl);
 
             return new FebsResponse().success().data(params);
         } catch (Exception e) {
@@ -72,6 +72,10 @@
         }
     }
 
+    /**
+     * FIUU 回调接口
+     * @param request
+     */
     @PostMapping("/notify")
     public void handlePaymentNotification(HttpServletRequest request) {
         // 1. 从POST请求中获取参数
@@ -142,6 +146,7 @@
         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));
@@ -151,7 +156,7 @@
         }
     }
 
-    // Java 回调接口
+    // Java 通知接口 暂时停止使用
     @PostMapping("/callback")
     public FebsResponse handlePaymentCallback(@RequestParam Map<String, String> params) {
         String secretKey = "59c709fc18978a6a83b87f05d37cecbf";
@@ -173,7 +178,11 @@
         }
 
         updateOrderStatus(orderId, status, amount, paydate, tranID);
-        return new FebsResponse().success().data("/pages/order/pay/paySuccess?amount="+ amount +"&type=3");
+        if ("00".equals(status)) {
+            return new FebsResponse().success().data("/pages/order/pay/paySuccess?amount="+ amount +"&type=3");
+        }else{
+            return new FebsResponse().fail().message("支付失败");
+        }
     }
 
     /**

--
Gitblit v1.9.1