From c207fd1454b64f47e2e66cd2f578a2b21b06f019 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期三, 15 七月 2026 17:39:42 +0800
Subject: [PATCH] 分账退款fix

---
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/IcbcPayController.java |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/IcbcPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/IcbcPayController.java
index 52bdbb1..f9b427c 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/IcbcPayController.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/IcbcPayController.java
@@ -219,6 +219,7 @@
         Map<String, String[]> requestParams = new LinkedHashMap<>(request.getParameterMap());
         String rawBody = requestParams.isEmpty() ? readRequestBody(request) : "";
         mergeJsonBody(requestParams, rawBody);
+        boolean success = false;
         log.info("工行支付回调原始请求,method:{},uri:{},query:{},contentType:{},params:{},body:{},headers:{}",
                 request.getMethod(),
                 request.getRequestURI(),
@@ -231,10 +232,11 @@
             Map<String, String> callback = icbcPayService.parseNotify(requestParams);
             log.info("工行支付回调解析结果:{}", JSON.toJSONString(callback));
             dispatchChargingOrderCallback(callback);
+            success = true;
         } catch (Exception e) {
-            log.error("工行支付回调处理失败,已记录原始请求并返回success避免重复通知", e);
+            log.error("工行支付回调处理失败,已记录原始请求并返回fail等待重试", e);
         } finally {
-            writeCallbackResponse(response);
+            writeCallbackResponse(response, success);
         }
     }
 
@@ -316,11 +318,11 @@
         return JSON.toJSONString(headers);
     }
 
-    private void writeCallbackResponse(HttpServletResponse response) throws Exception {
+    private void writeCallbackResponse(HttpServletResponse response, boolean success) throws Exception {
         response.setCharacterEncoding("UTF-8");
         response.setContentType("text/plain;charset=UTF-8");
         PrintWriter writer = response.getWriter();
-        writer.println("success");
+        writer.println(success ? "success" : "fail");
         writer.flush();
         writer.close();
     }

--
Gitblit v1.7.1