首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >java实现微信公众号登录,详细的步骤及有关实现代码

java实现微信公众号登录,详细的步骤及有关实现代码

作者头像
子润先生
修改2021-06-25 10:35:27
修改2021-06-25 10:35:27
2.6K0
举报

1.准备需要的配置参数

① 公众号开发者ID(AppID)(位置:基本配置)

② 开发者密码(AppSecret)(位置:基本配置)

③ 网页授权域名(位置:公众号设置->功能设置)

④ 回调地址redirectUri 只要在设置的授权域名下都行 注意:拿到code与state回调回来的地址

2.代码实现

① 通过后端获取code与state

代码语言:javascript
复制
String appId = AppID;
String redirectUri = URLEncoder.encode(redirectUri, "UTF-8");
String state = "自己生成的标识,验证使用";
String url = WechatConstant.WECHAT_OAUTH_URL + "?appid=" + appId + "&redirect_uri=" + redirectUri + "&response_type=code&scope=snsapi_userinfo&state=" + state + "#wechat_redirect";
response.sendRedirect(url);

② 拿到code与state获取openid以及用户信息

代码语言:javascript
复制
// 省略state验证步骤
String appId = AppID;
String secret = AppSecret;
String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appId +
                    "&secret=" + secret +
                    "&code=" + code +
                    "&grant_type=authorization_code";
String tokenInfoStr = HttpClientUtils.get(url);
if (tokenInfoStr.indexOf("openid") > -1) {
//将access_token转为json
JSONObject tokenInfoObject = new JSONObject(tokenInfoStr);
//通过access_token和openId获取用户信息
String openid = tokenInfoObject.getString("openid");
//将用户信息转为json
String userInfoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token="
                        + tokenInfoObject.getString("access_token")
                        + "&openid=" + openid
                        + "&lang=zh_CN";
String userInfoStr = HttpClientUtils.get(userInfoUrl);
logger.info("用户信息信息", userInfoStr);
// 用户信息
JSONObject userInfoObject = new JSONObject(userInfoStr);
}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档