From 05762546ed54a38ab4559b9c32374f16c5d61dd0 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 07 Feb 2025 13:50:18 +0800
Subject: [PATCH] fix(pay): 修复 fiuu 支付回调和退款查询相关问题

---
 src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java |    5 ++++-
 src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java       |    6 +++++-
 src/main/java/cc/mrbird/febs/pay/model/RefundStatus.java        |    1 +
 3 files changed, 10 insertions(+), 2 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 54755b7..1f5d010 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/FIUUController.java
@@ -173,11 +173,14 @@
         String preSkey = DigestUtils.md5Hex(tranID + orderId + status + domain + amount + currency);
         String calculatedSkey = DigestUtils.md5Hex(paydate + domain + preSkey + secretKey);
         MallOrderInfo mallOrderInfo = ValidateEntityUtils.ensureColumnReturnEntity(orderId, MallOrderInfo::getId, mallOrderInfoMapper::selectOne, "订单不存在");
-
+        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);
         }
diff --git a/src/main/java/cc/mrbird/febs/pay/model/RefundStatus.java b/src/main/java/cc/mrbird/febs/pay/model/RefundStatus.java
index 0e59e32..cd4434b 100644
--- a/src/main/java/cc/mrbird/febs/pay/model/RefundStatus.java
+++ b/src/main/java/cc/mrbird/febs/pay/model/RefundStatus.java
@@ -9,5 +9,6 @@
     private String RefundID;
     private String Status;
     private String LastUpdate;
+    private String ReasonMsg;
     private String FPXTxnID;
 }
diff --git a/src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java b/src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java
index 6071945..7951113 100644
--- a/src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java
+++ b/src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java
@@ -8,6 +8,7 @@
 import org.apache.http.util.EntityUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.concurrent.*;
 
 @Service(value="FiuuRefundUtil")
@@ -46,7 +47,10 @@
         HttpGet request = new HttpGet(url);
         try (CloseableHttpClient client = HttpClients.createDefault()) {
             String response = EntityUtils.toString(client.execute(request).getEntity());
-            return objectMapper.readValue(response, RefundStatus.class);
+            List<RefundStatus> refundStatusList = objectMapper.readValue(
+                    response,
+                    objectMapper.getTypeFactory().constructCollectionType(List.class, RefundStatus.class));
+            return refundStatusList.get(0);
         }
     }
 

--
Gitblit v1.9.1