Java微信網頁授權授權獲取使用者基本資訊
阿新 • • 發佈:2019-01-28
微信測試號申請地址:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login;
微信公眾平臺開發者文件地址:https://mp.weixin.qq.com/wiki/home/index.html;
網頁授權獲取使用者基本資訊
具體步驟:WxConfig.java程式碼if(openId == null || openId.equals("")){ //get userInfo //第一步:使用者同意授權,獲取code String code = (String)request.getParameter("code"); System.out.println("code:"+code); if(null == code || code.equals("")){ String GetCodeRequest = WxConfig.WEIXIN_OPENID_URL; String result = null; String uri = basePath + "lottery/toLottery.action?lottery.id=" + this.lottery.getId(); System.out.println("rui:"+uri); if(flag == null){ flag="game"; } try{ GetCodeRequest = GetCodeRequest.replace("APPID", URLEncoder.encode(serviceConf.getAppId(),"UTF-8")); GetCodeRequest = GetCodeRequest.replace("REDIRECT_URI",URLEncoder.encode(uri,"UTF-8")); GetCodeRequest = GetCodeRequest.replace("SCOPE", URLEncoder.encode(WxConfig.WEIXIN_SCOPE,"UTF-8")); GetCodeRequest = GetCodeRequest.replace("STATE", URLEncoder.encode(flag,"UTF-8")); result = GetCodeRequest; System.out.println("result:"+result); request.setAttribute("result", result); return "getOpenId"; }catch(Exception e){ e.printStackTrace(); logger.error("get code error"+e); } }else{ openId = WxConfig.getOpenId(code,serviceConf.getAppId(),serviceConf.getAppSecret()); request.getSession().setAttribute("openId", openId); logger.info("get openId:"+openId); }
public final static String WEIXIN_OPENID_URL ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect";
//根據access_token獲取openid
public final static String WEIXIN_ACCESS_TOKEN_OPENID_URL ="/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
<pre name="code" class="java">//獲取使用者標識openid public static String getOpenId(String code,String appId,String appSecret){ String GetOpenidRequest = HttpUtil.WEIXIN_HOST_API +WEIXIN_ACCESS_TOKEN_OPENID_URL; logger.info("getOpenId微信提交路徑:"+GetOpenidRequest); GetOpenidRequest = GetOpenidRequest.replace("APPID", appId); GetOpenidRequest = GetOpenidRequest.replace("SECRET", appSecret); GetOpenidRequest = GetOpenidRequest.replace("CODE", code); logger.info("getOpenId微信提交路徑:"+WEIXIN_ACCESS_TOKEN_OPENID_URL); JSONObject json = JSONObject.fromObject(HttpUtil.get(GetOpenidRequest)); System.out.println(json); String openid; try{ logger.info("獲取openid--getOpenId()"); openid = json.getString("openid"); String accessToken = json.getString("access_token"); logger.info("微信獲取到的使用者標識openid:"+openid+";access_token:"+accessToken); return openid; }catch (JSONException e) { openid = null; // 獲取openid失敗 e.printStackTrace(); logger.error("獲取token失敗 errcode:{}:"+json.getInt("errcode")+"errmsg:{}:"+json.getString("errmsg")); } return openid; }