package org.springframework.social.wechat.sample; import org.springframework.social.connect.Connection; import org.springframework.social.connect.ConnectionKey; import org.springframework.social.connect.web.SignInAdapter; import org.springframework.social.wechat.api.User; import org.springframework.social.wechat.api.Wechat; import org.springframework.stereotype.Component; import org.springframework.web.context.request.NativeWebRequest; @Component public class WechatSignInAdapter implements SignInAdapter { @Override public String signIn(String openId, Connection<?> connection, NativeWebRequest request) { ConnectionKey key = connection.getKey(); if ("wechat".equalsIgnoreCase(key.getProviderId()) || "wechatmp".equalsIgnoreCase(key.getProviderId())) { // 这里的if判断可对微信开放平台和微信公众平台帐号登录做不同的逻辑处理,此例子代码处理逻辑相同 User user = ((Wechat) connection.getApi()).userOperations().getUserProfile(openId); // 默认语言为英文,如果想切换为中文可改为:getUserProfile(openId,WechatLangEnum.ZH_CN); System.out.println(user); // 打印微信用户详细信息 } return "/login.htm"; // 返回跳转的url } }