您当前的位置: 首页 >  学无止境 >  文章详情

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

时间: 2020-04-28 【学无止境】 阅读量:共1485人围观

简介 openid是微信用户在公众号appid下的唯一用户标识(appid不同,则获取到的openid就不同),可用于永久标记一个用户,同时也是微信JSAPI支付的必传参数。本文就介绍如何获取openid以及用户的基本信息。

1.准备需要的配置参数

① 公众号开发者ID(AppID)(位置:基本配置)
图片.png
② 开发者密码(AppSecret)(位置:基本配置)
图片.png
③ 网页授权域名(位置:公众号设置->功能设置)
图片.png
④ 回调地址redirectUri
只要在设置的授权域名下都行
注意:拿到code与state回调回来的地址

2.代码实现

① 通过后端获取code与state

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以及用户信息

// 省略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); }
文章评论
总共 0 条评论
这篇文章还没有收到评论,赶紧来抢沙发吧~
Copyright (C) 2023- 小祥驿站 保留所有权利 蜀ICP备 17034318号-2  公安备案号 50010302004554