微信公眾號越來越多,對於我們程序員來說,也越來越需要了解微信端接口開發,下面是微信用戶進入公眾號后,公眾號獲取用戶信息的思路。
當然了,我有代碼,這里就只貼一點,主要的還是流程和查閱微信開發文檔。
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"里面。