首先普及知识:关注的用户对微信公众号是唯一的。 也就是说,用户对微信公众号是唯一的,相同的微信对不同的公众号具有不同的openId。
在微信开发中,我们增加了二级菜单,实现了相应的功能。 在许多情况下,您需要获得自己的openId。 本文主要介绍了通过与微信的交互获取自己的openId的情况。
这里提供用于向微信发送请求的连接。 ((重定向前准备好微信的AppId和token,重定向的URL会原样返回) )。
publicstaticstringbuildauthorizationurl (string appid,String redirectUri,String state ) {
string URL=' https://open.weixin.QQ.com/connect/oauth2/authorize?' ;
url=url 'appid=' appid;
URL=URL ' redirect _ uri=' uri util.encodeuri component (redirect uri;
url=url 'response_type=code ';
url=url 'scope=snsapi_base ';
if (斯塔特!=null ) {
url=url 'state=' state;
}
url=url '#wechat_redirect ';
return url;
}
如果请求成功,则会返回附加的code和state参数。 其中code参数是唯一的。 这意味着在一个请求中生成code,作为验证的唯一标准,state参数是以前请求的token参数
之后,取得公开号码的APPID和appscret,通过分析所回复的json数据形式,取得自己个人的openId,之后进行针对业务的操作
publicstaticstringoauth2get OpenID (string code,String appid,
字符串应用安全) {
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 ';
jsonobjectjsonobject=JSON util.https request (URL,' GET ',' );
system.out.println (JSON object=' JSON object );
returnjsonobject.getstring (' OpenID );
}