微信二次开发点击菜单openId的获取

Posted 破小孩一个

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信二次开发点击菜单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");
}

  

以上是关于微信二次开发点击菜单openId的获取的主要内容,如果未能解决你的问题,请参考以下文章

微信二次开发SDK

微信二次开发 之 微信接口凭证的获取

微信二次开发自定义接受事件推送的代码

微信订阅号开发,获取openid的方式

微信订阅号开发,获取openid的方式

Java微信二次开发