Преглед изворни кода

fix: 改用 Object.class + Jackson序列化获取回调解密JSON

Gson不在编译依赖中,不能用JsonObject.class。改为Object.class接收
SDK解密结果,再用Jackson的writeValueAsString转换为JSON字符串。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline пре 2 недеља
родитељ
комит
fc00a9b11b

+ 3 - 4
haha-service/src/main/java/com/haha/service/payment/payscore/impl/WxPayScoreStrategy.java

@@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.gson.JsonObject;
 import com.haha.common.enums.PaymentChannel;
 import com.haha.service.payment.config.WxPayConfig;
 import com.haha.service.payment.payscore.*;
@@ -688,9 +687,9 @@ public class WxPayScoreStrategy implements PayScoreStrategy {
                     .build();
 
             // SDK 自动完成签名验证 + AES-256-GCM 解密
-            // 解密后是 JSON 对象,需要用 JsonObject 接收而不能用 String
-            JsonObject decryptedData = wxNotificationParser.parse(requestParam, JsonObject.class);
-            String decryptedJson = decryptedData.toString();
+            // 解密后是 JSON 对象,用 Jackson 序列化获取 JSON 字符串
+            Object decryptedData = wxNotificationParser.parse(requestParam, Object.class);
+            String decryptedJson = objectMapper.writeValueAsString(decryptedData);
             log.info("[微信支付分] 回调解密数据: {}", decryptedJson);
 
             // 解析 JSON