微信用户授权后,获取用户的基本信息

 

微信开发文档中写的不够清楚,做出来的是网页授权后获取用户信息,不是自己想要的,自己想做的是获取用户基本信息,在开发中总结了一下思路,开始的时候使用的是https://api.weixin.qq.com/sns/oauth2/  去获取用户信息,后来发现获取的信息只是网页授权后能够获取的用户信息,

 

{ "openid":" OPENID",

" nickname": NICKNAME,

"province":"PROVINCE"

"sex":"1", "city":"CITY",

"headimgurl": "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc5615sf5sdfa5af4s5Y0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",

"country":"COUNTRY",

"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"

"privilege":[ "PRIVILEGE1" "PRIVILEGE2" ],

}

这并不是我想要的,下面是我重写的思路:

 

1、引导同意授权

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx234b156ds15d15574&redirect_uri=REDIRECT_URL&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

用户同意授权之后,微信平台会在回调地址中携带授权码code访问服务REDIRECT_URL

 

2、服务中从请求中获取code

// 如果用户同意授权,页面将跳转至redirect_uri/?code=CODE&state=STATE。

String code =request.getParameter("code");

 

3、使用appid appsecretid code 获取用户的openid

String access_token_url="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+APPID+"&secret="+APPSECRET+"&code=" + code +"&grant_type=authorization_code";

 

4、使用 appid  appsecretid 获取用户的access_token

access_token_url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ APPID+ "&secret=" + APPSECRET;

                           

5、使用openid access_token 获取用户的信息

String GET_USERINFO_URL="https://api.weixin.qq.com/cgi-bin/user/info?access_token="+ access_token+ "&openid=" + openid +"&lang=zh_CN";

 

 

 

{

"user_info_list": [

{

"subscribe": 1,

"openid": "otvxTs4dckWG7imySrJd6jSi0CWE",

"nickname": "iWithery",

"language": "zh_CN",

"sex": 1, "city": "揭阳",

"country": "中国",

"province": "广东",

"headimgurl": "http://thirdwx.qlogo.cn/mmopen/xbIQx1GRqdvyqkMMhEaGOX802l1CyqMJNgUzKP8MeAeHFicRDSnZH7FY4XB7p8XHXIf6uJA2SCunTPicGKezDC4saKISzRj3nz/0",

"subscribe_time": 1434093047, "unionid": "oR5GjjgEhCMJFyzaVZdrxZ2zRRF4", "remark": "", "groupid": 0, "tagid_list":[128,2],

"openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg"

"subscribe_scene": "ADD_SCENE_QR_CODE", "qr_scene": 98765, "qr_scene_str": "" }, { "subscribe": 0, } ]

}

 

 

代码就不上了,每个人的实现方法都不一样。

 

你可能感兴趣的:(微信开发)