微信公众号-获取当前用户信息

业务需求:
微信用户关注微信公众号后,点击菜单栏,服务器端可以获取到用户信息,用户业务关联。
实现思路:
根据开发文档提示,利用测试账号进行验证。第一步先进入公众平台测试账号,找到网页账号中获取用户信息,点击修改,在弹出框中写入自己的域名(必须是域名),可以利用隧道(NATAPP)获取本地域名。配置好后,可进行后期操作。
微信公众号-获取当前用户信息_第1张图片
微信公众号-获取当前用户信息_第2张图片
微信公众号-获取当前用户信息_第3张图片
服务器功能实现思路: 第一步:用户同意授权,获取code在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

尤其注意:由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验,如果链接的参数顺序不对,授权页面将无法正常访

scope为snsapi_base
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect
scope为snsapi_userinfo
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

微信公众号-获取当前用户信息_第4张图片
第二步:通过code换取网页授权access_token
微信公众号-获取当前用户信息_第5张图片
scope:作用域以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
微信公众号-获取当前用户信息_第6张图片
第三步:拉取用户信息(需scope为 snsapi_userinfo)
//获取用户信息的接口

public static final String GET_USERINFO_URL = “https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN”;

/**

  • 获取用户信息

*/
public static JSONObject getUserInfo(String accessToken,String openId){
String result = HttpUtil.get(GET_USERINFO_URL.replace(“ACCESS_TOKEN”, accessToken).replace(“OPENID”,openId));
JSONObject json = JSONObject.parseObject(result);
return json;
}

到此即可获取微信用户信息
微信公众号-获取当前用户信息_第7张图片

微信公众号:

微信公众号-获取当前用户信息_第8张图片

个人网站 – 测试数据生成 虚拟身份证生成 电话号码 邮箱 姓名生成

你可能感兴趣的:(JAVA)