微信公众号(服务号)接入开发之微信授权登陆

1. 授权回调域名的说明: 
(1)、这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头; 
(2)、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com; 
(3)、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可

  1. 关于网页授权的两种scope的区别说明: 
    (1)、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面); 
    (2)、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

  2. 网页授权access_token和普通access_token的区别: 
    (1)、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息; 
    (2)、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用;

  3. 网页授权流程分为三步: 

    (1)、第一步:用户同意授权,获取code,

 String appId="微信公众号的APPID";
 String url="微信回调的URL";
 String redirect_uri=URLEncoder.encode(url,"utf-8");
 String state="重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节 ";//带这个参数的好处就是防止非法的请求。
String url = "https://open.weixin.qq.com/connect/oauth2/authorize?";
        url = url + "appid=" + this.wxMpConfigStorage.getAppId();
        url = url + "&redirect_uri=" + URIUtil.encodeURIComponent(redirectURI);
        url = url + "&response_type=code";
        url = url + "&scope=" + scope;
        if (state != null) {
            url = url + "&state=" + state;
        }
        url = url + "#wechat_redirect";//进行URL的拼接
response.sendRedirect(url);//调用http请求的,进行微信授权


(2)、第二步:通过code换取网页授权access_token:

//这段代码在你回调的指定的url的Servlet或者action:
String code = request.getParameter("code");
loggerWx.info("code=" + code.toString());
String url="https://api.weixin.qq.com/sns/oauth2/access_token?appid="微信公众号的APPID"&secret="微信公众号的secret"&code=CODE&grant_type=authorization_code";//url的拼接
String wxMpOAuth2AccessToken=httpclient.get(url);//进行网络请求


(3)、第三步:拉取用户信息(需scope为 snsapi_userinfo):

String url="https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";//url的拼接
String wx_User_string=httpclient.get(url);//进行网络请求

微信的官方文档解释的挺全面的,官方文档的网址: http://mp.weixin.qq.com/wiki/1/8a5ce6257f1d3b2afb20f83e72b72ce9.html


原文:http://blog.csdn.net/lamboo_cn/article/details/50974080


猜你喜欢

转载自blog.csdn.net/qq_39101581/article/details/78625991