From b96705d1597c3ec1df4322b68e8b97b465c22ef8 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 10 十二月 2025 10:07:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxPayController.java |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxPayController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxPayController.java
index fb5628d..d8f3d6f 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxPayController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxPayController.java
@@ -127,8 +127,25 @@
     @PostMapping("refund/notify")
     public void refundNotify(HttpServletRequest request) throws IOException {
         try {
-            Map<String, Object> params = wxV3Pay.verifyNotify(request, new TypeReference<Map<String, Object>>() {
-            });
+
+            System.err.println("微信退款回调");
+            BufferedReader reader = request.getReader();
+            StringBuilder requestBody = new StringBuilder();
+            String line;
+            while ((line = reader.readLine()) != null) {
+                requestBody.append(line);
+            }
+            System.err.println("全部请求体" + requestBody);
+            JSONObject jsonObject = JSONObject.parseObject(requestBody.toString());
+            JSONObject resource = jsonObject.getJSONObject("resource");
+
+            AesUtil aesUtil = new AesUtil(weixinPayProperties.getV3().getApiKey().getBytes(StandardCharsets.UTF_8));
+            String decryptedData = aesUtil.decryptToString(resource.getString("associated_data").getBytes(StandardCharsets.UTF_8), resource.getString("nonce").getBytes(StandardCharsets.UTF_8),
+                    resource.getString("ciphertext"));
+            System.err.println("微信解密的字符串信息" + decryptedData);
+
+            JSONObject params = JSONObject.parseObject(decryptedData);
+
             // 商户订单号
             String out_trade_no = params.get("out_trade_no").toString();
             // 商户退款单号

--
Gitblit v1.7.1