微信端获取用户信息(思路)
微信公众号越来越多,对于我们程序员来说,也越来越需要了解微信端接口开发,下面是微信用户进入公众号后,公众号获取用户信息的思路。
当然了,我有代码,这里就只贴一点,主要的还是流程和查阅微信开发文档。
appid和secret是登录微信公众号里面设置的,固定的,code是微信用户同意协议返回给前端的code,后台通过这三个参数,访问url获取openid和access_token,然后再根据url访问微信接口获取用户信息。
代码:
1 String requestUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" 2 + CommonConstants.getProperty("wxAppId") 3 +"&secret=" + CommonConstants.getProperty("secret") + "&code=" 4 + notice.getCode() + "&grant_type=authorization_code"; 5 //获取access_token 6 String respResult = HttpUtil.sendGetForWeChatOpen(requestUrl); 7 Map<?, ?> map = RustFastJsonUtil.jsonTOmap(respResult); 8 logger.info("微信获取access_token返回结果:" + respResult); 9 10 String openid = String.valueOf(map.get("openid")); 11 logger.debug("openId:" + openid); 12 String access_token = String.valueOf(map.get("access_token")); 13 logger.debug("access_token:" + access_token);
以上代码,我们就获取到了微信openId,下面获取用户信息:
1 logger.info("-------->发送请求获取用户信息<-------"); 2 3 requestUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid + "&lang=zh_CN"; 4 5 String baseInfo = HttpUtil.sendGetForWeChatOpen(requestUrl); 6 logger.info("baseInfo:" + baseInfo); 7 String haha = ""; 8 logger.debug("------->开始采用ISO-8859-1编码格式进行转码<-----"); 9 haha = new String(baseInfo.getBytes("ISO-8859-1"), "UTF-8");
微信用户信息就在"haha"里面。