微信公众号获取用户信息-网页授权

Posted donotshow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信公众号获取用户信息-网页授权相关的知识,希望对你有一定的参考价值。

网上现在讲解微信公众号接口的文章已经很多,但还是在这边写一下,就当给自己做个记录。

微信公众号接口最开始肯定是用户数据的获取,也就是微信官方的公众号网页授权接口;

微信官方接口地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842  网页授权信息获取分为两种
SNSAPI_BASE("snsapi_base", "基本信息"),
SNSAPI_USERINFO("snsapi_userinfo", "详细信息");

,基本信息 snsapi_base 只能获取openid,详细信息snsapi_userinfo需要用户主动授权,可以获取用户昵称,地址等信息;
准备工作:(微信公众号配置)

分别配置上项目的域名,微信会根据配置的域名回调访问;注意不能加端口等,所以项目必须可以无端口访问;
接口访问分为三步: 1.获取授权code
public static String getWeChatCode(String backUri, GdWechatScopeTypeEnum scope) throws UnsupportedEncodingException 
    backUri = URLEncoder.encode(backUri, "UTF-8");
    String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + GdWechatConfig.appid +
            "&redirect_uri=" + backUri + "&response_type=code&scope=" + scope.getTypeCode() + "&state=123#wechat_redirect";
    return url;

2.用code换取access_token,同时可以获取到openid
public static Map<Object, Object> getOpenIdAndTokenByCodeWechat(String code) 
    //微信
    String URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + GdWechatConfig.appid
            + "&secret=" + GdWechatConfig.secret + "&code=" + code + "&grant_type=authorization_code";
    if (StringUtils.isNotEmpty(code)) 
        String resultStr = GDHttpClient.get(URL);
        if (StringUtils.isNotEmpty(resultStr)) 
            Map<Object, Object> map = GdJsonMapper.readStringValueToMap(resultStr);
            return map;
        
    
    return null;
3.用access_token和openid获取到用户基本信息
public static Map<Object, Object> getUserInfoWechat(String openId, String token) throws Exception 
    String userinfourl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + token + "&openid=" + openId + "&lang=zh_CN";
    String resultStr = GDHttpClient.get(userinfourl);
    if (StringUtils.isNotEmpty(resultStr)) 
        return (Map<Object, Object>) GdJsonMapper.readStringValueToMap(resultStr);
    
    return null;


注:代码中用到一些工具类如http,json可以用自己的 代码在github上:https://github.com/zgdcool/wechat  后期会持续更新,有兴趣的可以一起完善!

以上是关于微信公众号获取用户信息-网页授权的主要内容,如果未能解决你的问题,请参考以下文章

微信公众号开发网页授权获取用户基本信息(OAuth 2.0)

微信公众号开发简单的网页授权登陆获取用户基本信息

微信公众号获取用户信息-网页授权

微信公众号获取用户信息-网页授权

微信之网页授权获取用户基本信息

公众号获取openid