From dfca73284ec549bf83a2c7d59b37cdcdb44800e0 Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期五, 24 十月 2025 13:05:22 +0800
Subject: [PATCH] 111

---
 src/main/java/com/gs/xiaomi/service/SoapApiService.java |   27 +++++++++++++++++++++------
 src/main/java/com/gs/xiaomi/service/XM104Service.java   |    2 +-
 2 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/gs/xiaomi/service/SoapApiService.java b/src/main/java/com/gs/xiaomi/service/SoapApiService.java
index f7285ef..031828e 100644
--- a/src/main/java/com/gs/xiaomi/service/SoapApiService.java
+++ b/src/main/java/com/gs/xiaomi/service/SoapApiService.java
@@ -39,8 +39,8 @@
 
             if (!"Y".equalsIgnoreCase(evCode)) {
                 // 浠� decodedXml 涓彁鍙栭敊璇彁绀轰俊鎭�
-                String evMessage = extractEvMessage(decodedXml);
-                return SoapApiResponse.fail(evCode, evMessage != null ? evMessage : "SOAP涓氬姟澶勭悊澶辫触, EV_CODE: " + evCode);
+            String evMessage = extractEvMessage(decodedXml);
+            return SoapApiResponse.fail(evCode, evMessage != null ? evMessage : "SOAP涓氬姟澶勭悊澶辫触, EV_CODE: " + evCode);
             }
 
             String innerXml = extractCdata(decodedXml);
@@ -85,10 +85,25 @@
     }
 
     private String extractEvMessage(String xml) {
-        int start = xml.indexOf("<EV_MESSAGE>");
-        int end = xml.indexOf("</EV_MESSAGE>", start);
-        if (start == -1 || end == -1) return null;
-        return xml.substring(start + 12, end).trim();
+        String value = extractTagValue(xml, "ev_message");
+        if (value != null) {
+            return value;
+        }
+        return extractTagValue(xml, "EV_MESSAGE");
+    }
+
+    private String extractTagValue(String xml, String tagName) {
+        if (xml == null || tagName == null) {
+            return null;
+        }
+        String openTag = "<" + tagName + ">";
+        String closeTag = "</" + tagName + ">";
+        int start = xml.indexOf(openTag);
+        int end = xml.indexOf(closeTag, start);
+        if (start == -1 || end == -1) {
+            return null;
+        }
+        return xml.substring(start + openTag.length(), end).trim();
     }
 
     private String decodeXmlEntities(String xml) {
diff --git a/src/main/java/com/gs/xiaomi/service/XM104Service.java b/src/main/java/com/gs/xiaomi/service/XM104Service.java
index c29ea08..dfa014a 100644
--- a/src/main/java/com/gs/xiaomi/service/XM104Service.java
+++ b/src/main/java/com/gs/xiaomi/service/XM104Service.java
@@ -259,4 +259,4 @@
             return false;
         }
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3