From 0c98579fff979ae80fc30224b87c9c6eb626f49e Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期四, 30 四月 2026 17:29:37 +0800
Subject: [PATCH] feat:openinstall落地页接入websdk

---
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/auth/service/AppWechatAuthClient.java |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/auth/service/AppWechatAuthClient.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/auth/service/AppWechatAuthClient.java
index c8de56a..a9913eb 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/auth/service/AppWechatAuthClient.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/auth/service/AppWechatAuthClient.java
@@ -4,9 +4,11 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.tcm.training.admin.app.auth.config.AppWechatAuthProperties;
 import com.tcm.training.admin.app.auth.dto.AppWechatLoginRequest;
+import java.nio.charset.StandardCharsets;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestOperations;
 import org.springframework.web.client.RestTemplate;
@@ -29,7 +31,7 @@
      */
     @Autowired
     public AppWechatAuthClient(AppWechatAuthProperties properties, ObjectMapper objectMapper) {
-        this(properties, objectMapper, new RestTemplate());
+        this(properties, objectMapper, createUtf8RestTemplate());
     }
 
     /**
@@ -200,6 +202,16 @@
     }
 
     /**
+     * 创建默认按 UTF-8 解码字符串响应的 HTTP 客户端,避免微信中文昵称乱码。
+     */
+    private static RestTemplate createUtf8RestTemplate() {
+        RestTemplate restTemplate = new RestTemplate();
+        restTemplate.getMessageConverters().removeIf(StringHttpMessageConverter.class::isInstance);
+        restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));
+        return restTemplate;
+    }
+
+    /**
      * 保存微信换票结果,避免在多个私有方法之间散落参数。
      */
     private static class WechatAccessTokenSnapshot {

--
Gitblit v1.7.1