微信获取用户信息的方式有两种,静默授权(无需用户同意)和非静默授权(需要用户“ 手动点击 ”拉取授权,可以用户无需关注公众号即可获取用户信息)

整体的代码请查看最后,前边为原理介绍

首先将appid发送到指定连接,设置redirecturi回调地址

     //静默授权,只获取openid  snsapi_base;  非静默授权, 获取用户详细信息    snsapi_userinfoString scope = "snsapi_userinfo";//非静默授权String redirect_uri = "http://LILUO/GetUserInfoAccredit";//自己的回调地址String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+自己的appid+"&redirect_uri="+redirect_uri+"&response_type=code&scope="+scope+"#wechat_redirect";//设置用户点击跳转地址为url,必须为用户主动点击跳转才行

微信服务器接收到请求后将含有code信息的内容添加在回调地址中并访问该回调地址,用户后台接收到访问请求后处理code,将code发送到指定的微信链接地址,拿code去换取access_token和用户openid

 String code = req.getParameter("code");//换取access_token地址String url = " https://api.weixin.qq.com/sns/oauth2/access_token?appid="+appid+"&secret="+secret+"&code="+code+"&grant_type=authorization_code";//指定微信链接地址String result = getAndPost.get(url);//发送get请求,换取access_token和用户openidJSONObject json = JSONObject.fromObject(result);//得到access_tokenString tocken = json.getString("access_token");//得到openidString openid = json.getString("openid");

利用openid和access_token拼接到指定的url中发送给微信服务器,换取用户信息

 //拉取用户基本信息,根据openid和access_token去换String urlUserInfo = "https://api.weixin.qq.com/sns/userinfo?access_token="+tocken+"&openid="+openid+"&lang=zh_CN";//指定urlresult = getAndPost.get(urlUserInfo);//发送到微信服务器//System.out.println(result);JSONObject jsObj = JSONObject.fromObject(result);//将返回的数据格式化为json数据jsObj.get("name");//获取名字jsObj.get("gender");//获取性别

将获取到的信息直接存入数据库即可

获取用户详细信息(整体流程)

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String appid = "fb";String secret = "86";//获取codeString code = req.getParameter("code");//换取access_token地址String url = " https://api.weixin.qq.com/sns/oauth2/access_token?appid="+appid+"&secret="+secret+"&code="+code+"&grant_type=authorization_code";String result = getAndPost.get(url);JSONObject json = JSONObject.fromObject(result);//得到access_tokenString tocken = json.getString("access_token");String openid = json.getString("openid");//拉取用户基本信息String urlUserInfo = "https://api.weixin.qq.com/sns/userinfo?access_token="+tocken+"&openid="+openid+"&lang=zh_CN";result = getAndPost.get(urlUserInfo);//System.out.println(result);JSONObject jsObj = JSONObject.fromObject(result);//获取详情jsObj.get("name");jsObj.get("gender");
}//用户点击时地址凭借参数String scope = "snsapi_userinfo";/只获取openid  snsapi_base;    获取详细信息 snsapi_userinfoString redirect_uri = "http:LILUO/GetUserInfoAccredit";String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+自己的appid+"&redirect_uri="+redirect_uri+"&response_type=code&scope="+scope+"#wechat_redirect";可以通过a标签让用户访问我们的地址

通过openid获取已关注用户的基本信息

/*** 获取已经关注用户的基本信息*/
public static String getUserInfo(String openid) {String url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token="+微信公众号的accesstoken+"&openid="+该用户的openid+"&lang=zh_CN";String resutl = getAndPost.get(url);//发送到微信服务器return resutl;
}

微信公众号开发之获取用户信息相关推荐

  1. 【微信公众号开发】获取用户信息时,有时成功获取,有时提示“invalid openid hint”

    原因:保存openid的session在某个方法里被重新赋新值了.所以一旦调用了这个方法,再去获取用户信息时,就会报错.

  2. Spring boot 项目(十三)——实现微信公众号授权登录获取用户信息

    引言 微信公众号开发中,必不可少的一环:公众号授权登录.获取微信用户信息 前期准备 内网渗透=>生成本地指定端口映射的外网域名 链接:内网渗透工具natapp使用详解 域名生成之后修改yml文件 ...

  3. 微信公众号开发之获取用户地理位置

    使用微信的用户地理位置接口就要配置这里. 前端代码: function configWx() {var thisPageUrl = location.href.split('#')[0];$.ajax ...

  4. 基于Spring Boo微信公众号授权登录获取用户信息(附带完整源码)

    简介 微信公众号开发中,必不少可少的一环:公众号授权登录.获取微信用户信息. 本地完整运行环境准备 内网渗透=>生成本地指定端口映射的外网域名 传送门:内网渗透工具Natapp使用详解 域名生成 ...

  5. 微信公众号授权(获取用户信息)

    需要的工具: 微信公众号(可以申请,但做开发的,可以申请测试号,申请详细不多说了) 服务器(可以自行购买,我使用的是新浪的sae.) 编辑器(随意,不做推荐) 微信公众号开发文档(地址) !!!!!完 ...

  6. java实现微信公众号授权登录获取用户信息(一)

    参考文章:https://blog.csdn.net/Santiago_M/article/details/79109154 : https://www.cnblogs.com/jilu/p/6123 ...

  7. 微信公众号接入和获取用户信息

    主要原理: 1.从微信公众号发来的get请求为验证服务器安全性的 2.从微信公众号发来的post请求为接受和回复用户信息的 3.先根据是否有code来进行判断,如果有code的话,根据code换取op ...

  8. php下载 微信头像图片_php微信公众号开发,获取用户头像,并下载

    前一篇文章说了获取用户个人信息,下面来说一下获取用户微信头像,很多开发者在显示用户信息的时候都要获取用户头像,通常获取的都是url连接, 我们需要将图片下载下来并保存,以方便我们调用:. 上一篇文章我 ...

  9. php微信公众号开发,获取用户头像,并下载;

    前一篇文章说了获取用户个人信息,下面来说一下获取用户微信头像,很多开发者在显示用户信息的时候都要获取用户头像,通常获取的都是url连接, 我们需要将图片下载下来并保存,以方便我们调用:. 上一篇文章我 ...

最新文章

  1. JavaMVC 模式
  2. Hibernate 一对多的联系(Set关联) 对象关系映射
  3. wordpress漏洞_用软件工具扫描WordPress / Shopify主题恶意代码以及漏洞分析相关工具...
  4. mysql 大于号 优化_SQL优化 MySQL版 - 避免索引失效原则(二)
  5. 求序列第K大算法总结
  6. 图片视频预览开启和关闭脚本 Xp
  7. 【Python CheckiO 题解】Roman Numerals
  8. Mac selenium调试已经存在的Chrome浏览器
  9. 麒麟990 5G获外媒好评:华为Mate30系列有望引领5G时代新体验
  10. CDOJ 1805 矩阵 数学
  11. NYOJ41 - 三个数从小到大排序
  12. 计算机配置里面没有网络选项,解决win10网络设置中没有以太网的方法
  13. 对项目采购管理的分析----合同类型及例题
  14. 展讯7731C_M Android6.0 充电指示灯实现(一)------关机充电实现【转】
  15. 以美颜sdk为例,详解sdk接入流程
  16. c51抢答器程序汇编语言,c51单片机汇编语言单片机八位抢答器程序
  17. 机器学习(八)SVM支持向量机
  18. Nmap 扩展(一)
  19. TP-Link wr886n 路由器插上光纤后网速变慢问题
  20. 5款高校5G消息应用号测评:覆盖校园服务的方方面面

热门文章

  1. 剑指offer(7)斐波那契数列
  2. Python数据挖掘和机器学习
  3. main函数argc,argv操作
  4. 英语 面包为什么不可数?
  5. [Vue.js]实战 -- 电商项目(二)
  6. 如何阻止复制剪切和粘贴事件
  7. Tips--git bash管理本地文档的常用命令
  8. rust 案例_Rust特殊枚举Option用法
  9. pytorch实现dcgan_PyTorch版本DCGAN实现的注解
  10. c语言有啥简单的小程序,c语言-简单小程序-简单算法