SpringCloud : 接入 微信公众号平台(四)、获取微信用户信息接口
代码参考:
import com.phpdragon.wechat.proxy.config.WeChatConfig; import com.phpdragon.wechat.proxy.dto.mp.user.GetOauthUserInfoDto; import com.phpdragon.wechat.proxy.dto.mp.user.GetOpenidDto; import com.phpdragon.wechat.proxy.dto.mp.user.GetUserInfoDto; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; import me.chanjar.weixin.mp.bean.result.WxMpUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @Slf4j @RequestMapping("/user/") @RestController public class UserController { @Autowired private WeChatConfig weChatConfig; /** * 通过openid获得基本用户信息 * 详情请见: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#3 * * @param req * @return */ @ResponseBody @PostMapping("/getUserInfo") public WxMpUser getUserInfo(@RequestBody @Valid GetUserInfoDto req) throws WxErrorException { WxMpService wxMpService = weChatConfig.getWxMpService(req.getAppId()); return wxMpService.getUserService().userInfo(req.getOpenid(), req.getLang()); } /** * 通过code获得基本用户信息 * 详情请见: * https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#1 * https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#3 * * @param req * @return */ @ResponseBody @RequestMapping("/getOAuth2UserInfo") public WxMpUser getOAuth2UserInfo(@RequestBody @Valid GetOauthUserInfoDto req) throws WxErrorException { WxMpService wxMpService = weChatConfig.getWxMpService(req.getAppId()); WxMpOAuth2AccessToken accessToken = wxMpService.oauth2getAccessToken(req.getCode()); return wxMpService.getUserService().userInfo(accessToken.getOpenId(), req.getLang()); } /** * 用code换取oauth2的openid * 详情请见: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#1 * * @param req */ @ResponseBody @PostMapping("/getOpenid") public String getOpenid(@RequestBody @Valid GetOpenidDto req) throws WxErrorException { WxMpService wxMpService = weChatConfig.getWxMpService(req.getAppId()); WxMpOAuth2AccessToken accessToken = wxMpService.oauth2getAccessToken(req.getCode()); return accessToken.getOpenId(); } }
PS:
Java开发微信公众号之整合weixin-java-tools框架开发微信公众号
从零实现 Spring Boot 2.0 整合 weixin-java-mp(weixin-java-tools) 获取 openId,用于微信授权
Demo 列表
分类:
SpringCloud
, 微信开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2016-03-24 使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化