微信二次開發點擊菜單openId的獲取


                 首先普及一個知識:一個關注的用戶對於一個微信公眾號是唯一的,也就是說一個用戶針對與一個微信公眾號是唯一的,對於不同的公眾號,同一個微信號具有不同的openId;

                 在微信開發中,我們添加了一個二級菜單並實現一些相應的功能,往往是需要獲取自己的openId,本文主要闡述如果通過與微信的交互得到自己的openId ;

                 這里提供一個連接,用於向微信發起請求:(在重定向之前准備好微信的AppId以及token,重定向的URL會被原樣返回)

public static String buildAuthorizationUrl(String appid,String redirectUri, String state) {
		String url = "https://open.weixin.qq.com/connect/oauth2/authorize?";
		url = url + "appid=" + appid;
		url = url + "&redirect_uri=" + URIUtil.encodeURIComponent(redirectUri);
		url = url + "&response_type=code";
		url = url + "&scope=snsapi_base";
		if (state != null) {
			url = url + "&state=" + state;
		}
		url = url + "#wechat_redirect";
		return url;
}

            請求成功后,會額外返回一個code以及state參數,其中code參數是唯一的,也就是說一次請求,產生一個code,作為校驗的唯一標准,state參數是之前請求中的token參數

                 之后,獲取到公眾號的APPID以及appscret,通過解析返回的json數據格式,獲取到自己個人的openId,之后再進行對業務的操作

public static String oauth2getOpenID(String code, String appid,
String appsecret) {
String url = "https://api.weixin.qq.com/sns/oauth2/access_token?";
url = url + "appid=" + appid;
url = url + "&secret=" + appsecret;
url = url + "&code=" + code;
url = url + "&grant_type=authorization_code";
JSONObject jsonObject = JsonUtil.httpsRequest(url, "GET", "");
System.out.println("jsonObject=" + jsonObject);
return jsonObject.getString("openid");
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM