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