这篇文章我想记录一下微信服务号二次开发怎么进行授权登录获取用户信息的。我用流程化的方式来阐述一下怎么实现微信授权取用户信息。

第一:
我们要取得微信授权,加入我们是从菜单栏点击某一个连接菜单进行实现的。所以此时我们菜单的连接就必须是:

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

当然如果你选择静默授权,那scope就变成snsapi_base。当你单击这个菜单的时候,就会进行授权第一次访问。这个访问会返回一个code,它会和state的值一起作为参数传给你的重定向地址redirect_uri,而这个重定向url是 必须经过url encode转换的 。

第二:

在你的重定向uri这边的接口你就必须取出code的值,然后回调微信的

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

接口,这个接口可以返回特殊的access_token,它是针对用户授权的access_token, 跟我们上传文件或者创建菜单的accessToken是有所区别的。如果正常调用会返回这样数据格式的数据:

{"access_token":"ACCESS_TOKEN","expires_in":7200,"refresh_token":"REFRESH_TOKEN","openid":"OPENID","scope":"SCOPE","unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

第三:

你拿着accesstoken的值还有针对用户的唯一标识openid就可以获取用户信息,然后你在这个接口中在通过get请求获取用户信息,访问地址为

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

取到用户数据后就可以在这个接口中直接跳转到你的app,然后直接静默登录,或者显示用户信息。实现免登录。

其中还涉及到一个重新刷新accesstoken的操作,那是因为这个特殊的accesstoken是有时间显示,第一次的时间较短,再次刷新的时间可以更长。下面我把我接受授权的那个回调接口代码贴出来。当然你那个redirect_uri就要指向这个接口

 @RequestMapping(value="/cardniu/mystore",method=RequestMethod.GET)public String gotoMyShop(HttpServletRequest request,Model model){log.info("=============进入授权回调接口=========");WeixinUtil weixinUtil = new WeixinUtil();String tempCode = request.getParameter("code");log.info("==========返回回来的code: "+tempCode+"==========");UserAccessToken userAccesssToken=weixinUtil.getUserAccessToken(tempCode);OpenUser userInfo = weixinUtil.getOpenUserInfo(userAccesssToken);JSONObject userInfoObject = JSONObject.fromObject(userInfo);log.info("=========获取到的用户信息:"+userInfoObject.toString()+"=========");model.addAttribute("userInfo", userInfo);  model.addAttribute("userToken", userAccesssToken);model.addAttribute("code", tempCode);return "myStore/myShop";}

java二次开发微信公众号授权相关推荐

  1. Java在Web端微信公众号授权登录

    Java在Web端微信公众号授权登录 1.需要在微信开发平台配置 url:是自己服务中的微信需要推给你的地址(需要使用二级域名,可以去添加链接描述)购买9块钱1个月使用权或者白嫖都可 token 这个 ...

  2. 开发微信公众号授权失败

    近期在学习开发微信公众号,但是在配置环境的时候遇到了问题.在页面授权的时候,拿不到code.并且 snsapi_userinfo 授权模式的情况下,并没有弹出授权协议,页面要么显示redirect_u ...

  3. uniapp开发微信公众号授权

    1.前端去执行 第一步骤:根据appid 跳转https://open.weixin.qq.com/connect/oauth2/authorize微信的这个地址,然后微信把code传过来. 第二步骤 ...

  4. 微信公众号php二次开发,微信公众号开发之文本消息自动回复php代码

    本文实例为大家分享了php微信文本消息自动回复 别代码,供大家参考,具体内容如下 1.PHP示例代码下载 下载地址1:http://xiazai.jb51.net/201608/yuanma/phpw ...

  5. 微信公众号授权步骤详细步骤介绍和整合springboot开发(java版)

    文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 一.微信公众号授权步骤 首先到微信公众平台注册账号,可以看到有四种类型(服务号,订阅号,小程 ...

  6. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  7. Java开发微信公众号(四)---微信服务器post消息体的接收及消息的处理

    在前几节文章中我们讲述了微信公众号环境的搭建.如何接入微信公众平台.以及微信服务器请求消息,响应消息,事件消息以及工具处理类的封装:接下来我们重点说一下-微信服务器post消息体的接收及消息的处理,这 ...

  8. vue开发项目微信公众号授权支付开发

    一.注册微信公众号服务号并填写企业信息(个人订阅号没有开发微信支付的权限) 链接: https://mp.weixin.qq.com/ 二.在微信公众号内进行微信认证(3-5个工作日) 三.在微信公众 ...

  9. Java开发微信公众号之被动回复用户消息-回复图片消息

    一.前言 hello小伙伴们,大家好,做微信开发两年了,最近看到微信方面的文章阅读量和关注量上升的比较快速,激发了我满满的动力啊,所以就滋生了一个想法,从头开始整理一下微信公众号开发,写一个简易的教程 ...

最新文章

  1. python怎么导入时间-python模块导入和time模块
  2. python爬虫scrapy安装_零基础写python爬虫之爬虫框架Scrapy安装配置
  3. leetcode 220. Contains Duplicate III | 220. 存在重复元素 III (Treeset解法+分桶解法)
  4. 清华等高校自评称“已建成世界一流大学”?教育部回应
  5. python【进阶】5.一等函数(注销)
  6. github设置中文_【Github】100+ Chinese Word Vectors 上百种预训练中文词向量
  7. php 调用微信收货地址,php版微信自动获取收货地址api用法示例
  8. eclipse无法创建tomcat7.0的server
  9. 外部数据源 之 Plugin 可插拔的方式整合到Spark中/Spark源码中
  10. 7.3 环境(Condition)
  11. 关于 Matlab R2014a下载与安装流程
  12. python优化网站_利用python做seo优化
  13. centos 确定cpu是arm 还是x86_x86,I386,i686, x86_64, x64,amd64、Windows Linux AIX下查看CPU位数和操作系统位数、rpm包名...
  14. 网络渗透测试实验三 XSS和SQL
  15. ajax执行先后顺序
  16. 架构设计-架构愿景分析
  17. 【c#】 MVC模式 ——《七天学会》系列学习心得
  18. andorid 问题集合
  19. 微金所项目-响应式开发文档
  20. 奔腾n6005 怎么样 相当于什么水平

热门文章

  1. 二十、多孔介质模型案例
  2. 5.2JVM生命周期以及类加载
  3. 我的世界简易红石机器
  4. 有没有html代码听力的软件吗,有哪些英语听力训练的软件?
  5. Appium在Android无法显示界面处理方式
  6. android 中文开发文档
  7. 大学生计算机专业应聘简历,大学生计算机专业应聘简历模板
  8. 图解进程的(三种、五种)状态
  9. [教程] Ubuntu16.04系统安装Open3D
  10. 视频加速播放插件-Global Speed