微信授权登陆:

我采用的是自定义的子菜单:登陆微信公众平台

第一步:用户同意授权、获取code

第二步:通过code换取网页授权access_token

详细步骤参考微信公众号平台

在页面地址输入授权后的url:

eg:

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

访问页面:

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

拉取用户的基本信息,只需要access_token、openid

请求url:

http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

获取用户信息的方法:

 //获取用户的微信头像public static String getSnsapiUserinfo(String openId) throws Exception{logger.debug("getAccessToken,accessToken=" + accessToken);String url = "https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openId+"&lang=zh_CN";String webStr = HttpUtil.sendGetRequest(url, HttpUtil.CHARACTER_ENCODING);logger.debug("getSnsapiUserinfo,webStr=" + webStr);HashMap map = (HashMap) JSONUtil.deserialize(webStr);String headimgurl = (String) map.get("headimgurl");return headimgurl;}

发生get请求,获取返回的信息

  /*** 发送get请求,获取返回html* * @param strUrl*            请求地址* @param encode*            页面编码* @return* @throws Exception*/public static String sendGetRequest(String strUrl, String encode) throws Exception {URL newUrl = new URL(strUrl);HttpURLConnection hConnect = (HttpURLConnection) newUrl.openConnection();InputStream is = hConnect.getInputStream();String str = inputStreamToString(is, encode);is.close();hConnect.disconnect();return str;}

获取accesstoken和openid

 //获取企业号调用的临时tokenpublic static String getAccessToken() throws Exception {Date now = new Date();if (accessToken != null&& accessTokenGetTime != null&& now.getTime() - accessTokenGetTime.getTime() <= 1000 * 60 * 30) {return accessToken;} else {String webStr = HttpUtil.sendGetRequest(getTokenUrl(), HttpUtil.CHARACTER_ENCODING);logger.debug("getAccessToken,webStr=" + webStr);HashMap map = (HashMap) JSONUtil.deserialize(webStr);String token = (String) map.get("access_token");accessToken = token;accessTokenGetTime = now;return token;}}//通过微信code获取openidpublic static String getOpenId(String code) throws Exception {String webStr = HttpUtil.sendGetRequest(getTokenUrlfw(code), HttpUtil.CHARACTER_ENCODING);logger.debug("getAccessToken,webStr=" + webStr);HashMap map = (HashMap) JSONUtil.deserialize(webStr);String openid = (String) map.get("openid");accessToken=(String) map.get("access_token");return openid;}

微信授权-获取微信授权后用户信息相关推荐

  1. Java实现扫码微信登陆(获取登陆成功的用户信息 + 包含使用vue怎么显示登陆二维码)

    实现于springboot中 依据b站视频写出的: 点击此处进行观看 然后记录于此处. 首先微信登陆的流程为: (可以去微信开发者平台看) 第一步:请求CODE 若提示"该链接无法访问&qu ...

  2. taobao.miniapp.eleuser.phone.get( 获取饿了么用户信息 )

    ¥开放平台免费API必须用户授权 获取饿了么用户信息 公共参数 请求地址: 公共请求参数: 公共响应参数: 响应参数 点击获取key和secret 请求示例 响应示例 异常示例

  3. 连小白都能看懂的微信开发之微信网页授权 + 获取微信用户信息

    微信网页授权 所谓的微信网页授权说白了就是 用户微信客户端内访问第三方网页,公众号可以根据网页授权这个机制来获取用户的基本信息,然后进行相应的逻辑处理. 官方文档 : https://mp.weixi ...

  4. vue获取微信登陆权限_vue 授权获取微信openId操作

    1.获取url中参数code: 根据code 获取openId:调用后台接口获取openId . function getUrlKey(name){//获取url 参数 return decodeUR ...

  5. 微信中获取微信用户信息的2种方式

    微信中获取微信用户信息的2中方式 1, 在公众号底部菜单栏地址配置h5地址,如 http://test.dingdong.com/page1 然后前端在所有页面前拦截如login页面,查看是否有tok ...

  6. 使用uc_authcode 获取论坛当前登录用户信息

    目的:使用uc_authcode 获取论坛当前登录用户信息 曲折:看了Discuz官方的ucenter二次开发手册,其中的Example如下: if(!empty($_COOKIE['Example_ ...

  7. 爬虫:利用cookie获取人人网登录后网页信息

    爬虫:利用cookie获取人人网登录后网页信息 思路: 1.首先创建一个自动获取登录cookie的实例,创建请求管理器opener 2.分析网页源码,获取登录的form信息,并写入data,访问登录界 ...

  8. 从微信官方获取微信公众号名片:https://open.weixin.qq.com/qr/code?username=haihongruanjian...

    从微信官方获取微信公众号名片: https://open.weixin.qq.com/qr/code?username=haihongruanjian (http://open.weixin.qq.c ...

  9. 从微信官方获取微信公众号二维码(名片)

    从微信官方获取微信公众号二维码(名片) src="http://open.weixin.qq.com/qr/code?username=微信号" <img src=" ...

最新文章

  1. NFS企业级网络文件共享
  2. Inception GoogLeNet
  3. 从GBIP到PXI 的发展简史
  4. 狼的十大“处世哲学”~~(有关狼的图片)
  5. WSS3.0自带数据库可以使用SQL 2005 Server Management Studio来管理
  6. 给java程序员网址_程序员常用网址,必须收藏
  7. allegro导出坐标文件正反面_Orcad与Allegro交互
  8. 特斯拉在华第900座超级充电站落户深圳
  9. Java SpringBoot 页面渲染
  10. 概率论与数理统计(一)—— 联合概率、条件概率与边缘概率
  11. shell命令 ffmpeg 批量提取视频的音频文件
  12. 一元函数积分学2_不定积分的分部积分法
  13. labelme_json_to_dataset不能转换关键点的问题
  14. 将秒换成 小时,分钟,秒
  15. 02.javaWeb旅游网小项目【注册功能】
  16. java 探花交友项目day5 推荐好友列表 MongoDB集群 发布动态,查询动态 圈子功能
  17. 网络闪断导致oracle监听终止,一个由网络闪断导致的CICS交易网关异常的案例分享...
  18. 查看文件终端命令之cat命令和more命令详解 简单易懂
  19. history和head和less和tail的运用
  20. Sentinel初次使用Demo测试

热门文章

  1. js时间戳转换年月日
  2. python映射类型是什么意思_Python中字典映射类型的学习教程
  3. 折半查找--hnust oj
  4. java 读取excel模板_java如何读取excel表格的信息,java读取excel模板
  5. Chrome浏览器开启手机调试模式就断网解决
  6. 定时计数器c语言编程,定时计数器T0作定时应用技术(一)
  7. there is no source code available for the current location 解决方法
  8. 王者荣耀刷金币脚本,买英雄你还愁么?
  9. Python初级入门精讲-学习笔记
  10. 如何让Arduino IDE支持你手里的STM32 nucleo开发板