3.然后再根据code获取公众号下用户的openid与uninonid等个人信息了,这里要多说一下,这个code在小程序里面是无法直接获取的,我是在小程序wx.login后调用了web view网页弹出 来引导用户进行授权的,这里大家可以参考一下微信的官方说明文档,需要配置一个服务器域名 或 测试用机的IP地址白名单,还要配置一个授权成功后回调的接口地址,也就是你自己写的接口,这个接口中就可以获取到code,code是从你的授权网页传递过来的,在网页上写一个onload默认加载,把页面地址栏里接收到的微信传来的code参数拿出来,传到自己的接口中去..下面我把接口中根据code获取微信公众平台用户的个人信息代码贴上
@RequestMapping(value = "/callBack", method = RequestMethod.GET)
public @ResponseBody void callBack(HttpServletRequest request,HttpServletResponse response) throws Exception {
response.setHeader("Access-Control-Allow-Origin", "");
/星号表示所有的域都可以接受,*/
response.setHeader("Access-Control-Allow-Methods", "GET,POST");
//使用code获取公众号用户的openid------------
String urls = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="+appId+"&secret="+appSecret+"&code="+code+"&grant_type=authorization_code";
JSONObject result = WX_HttpsUtil.httpsRequest(urls, "GET");
JSONObject resultJson = new JSONObject(result);
String GZHopenid = (String) resultJson.get("openid");
String errmsg = (String) resultJson.get("errmsg");
//如果code失效 则不添加用户
if(errmsg==null){
//使用openid获取unionid
String access_token = WX_TokenUtil.getWXToken().getAccessToken();
String url2 = "https://api.weixin.qq.com/cgi-bin/user/info?access_token="+access_token+"&openid="+GZHopenid+"&lang=zh_CN";
JSONObject result2 = WX_HttpsUtil.httpsRequest(url2, "GET");
JSONObject resultJson2 = new JSONObject(result2);
String GZHunionid = (String) resultJson.get("unionid");
}
}
到这里为止,你的公众号与小程序的用户的个人信息就全部获取到了,可以通过unionid关联起来了...