微信用户绑定java实例_OAuth2.0微信网页授权获取用户信息实现全过程(JAVA版本)...
一.前言
为什么需要OAuth2.0网页授权接口,主要是为了获取微信用户的基本信息(比如用户绑定,用户统计等等)
特别注意:只有认证的服务号有此接口权限
那么订阅号如何实现这个功能呢?可以通过另一个服务号来使用这个接口获取用户基本信息,因为对于未关注此服务号的用户,这个接口同样能够获取到用户基本信息。
二.前期准备
1.我的开发环境与工具说明
开发机器:一台Mac Book Pro
开发工具:
MyElipse
Paste_Image.png
系统环境:OS X EI Capitan 版本 10.11.5
微信web开发者工具
Paste_Image.png
注册一个微信公众号(订阅号或者服务号)
Paste_Image.png
Paste_Image.png
Paste_Image.png
注册一个新浪SAE帐号(用来部署JAVA服务)
三.实现过程
流程解析图
Paste_Image.png
1.check代码,并部署到新浪SAE
源码地址:https://github.com/andli0626/wx_auth_by_java
通过myelipsecheck源码,并输入自己测试微信号的appID,appsecret
Paste_Image.png
导出war包
Paste_Image.png
Paste_Image.png
部署到新浪SAE
Paste_Image.png
Paste_Image.png
上次war包
Paste_Image.png
Paste_Image.png
核心代码
public class OAuthServlet extends HttpServlet {
private static final long serialVersionUID = -1847238807216447030L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
// 用户同意授权后,能获取到code
String code = request.getParameter("code");
// 用户同意授权
if (!"authdeny".equals(code)) {
String APPID = "";
String SECRET = "";
// 获取网页授权access_token
WeixinOauth2Token weixinOauth2Token = AdvancedUtil.getOauth2AccessToken(APPID, SECRET, code);
// 网页授权接口访问凭证
String accessToken = weixinOauth2Token.getAccessToken();
// 用户标识
String openId = weixinOauth2Token.getOpenId();
// 获取用户信息
SNSUserInfo snsUserInfo = AdvancedUtil.getSNSUserInfo(accessToken, openId);
// 设置要传递的参数
request.setAttribute("snsUserInfo", snsUserInfo);
}
// 跳转到index.jsp
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
web.xml配置
oauthServlet
org.liufeng.course.servlet.OAuthServlet
oauthServlet
/oauthServlet
index.jsp
2.配置授权回调域名
Paste_Image.png
Paste_Image.png
新浪SAE已经提供了测试的域名,还是很方便的
Paste_Image.png
必须配置,如果配置不正确,会导致以下错误
Paste_Image.png
3.构造网页授权链接
Paste_Image.png
主要是3个参数:
appid
redirect_uri 授权后重定向的回调链接地址
scope 应用授权作用域
snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid)
snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。
我的新浪SAE重定向页面是:
https://wxauth.applinzi.com/authServlet
那么网页授权链接为
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8015b2139267655d&redirect_uri=https://wxauth.applinzi.com/oauthServlet&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect
4.测试方法
第一种:通过微信测试帐号
Paste_Image.png
通过pc端的微信客户端,直接把网页授权链接发送到手机端
Paste_Image.png
Paste_Image.png
第二种:通过微信web开发者工具
直接将网页授权链接拷贝到地址栏,访问即可
Paste_Image.png
Paste_Image.png
常见错误说明
Paste_Image.png
应该是没有接口权限,需要进行开发者认证
Paste_Image.png
参考资料
《微信公众平台应用开发方法,技巧与案例》
微信公众平台官方指南
https://mp.weixin.qq.com/wiki
微信用户绑定java实例_OAuth2.0微信网页授权获取用户信息实现全过程(JAVA版本)...相关推荐
- 微信接口开发之高级篇系列【网页授权获取用户基本信息】
PHP微信接口开发之高级篇之网页授权获取用户基本信息 二.WEB开发工具 转载于:https://www.cnblogs.com/tinywan/p/5860981.html
- 微信第三方开平台代公众号发起网页授权 获取用户信息 openid,uninoid
开发过程中, 走了不少弯路,简单记下几个点以备用 首先当然微信文档还是要先仔细过一遍的. 文档链接: 点击打开链接 写在前面:第三方平台代公众号办业务之前,公众号应该已经授权给第三方平台权限了,此时应 ...
- Java微信公众号开发之网页授权获取用户基本信息
本篇博客讲解的网页授权只需要前端传递一个backUrl(回调地址) 到后台接口,后台接口会完成整个授权流程,无需前端做更多工作: 一. 前言 微信公众号开发,需要用到网页授权获取用户信息,通过OAut ...
- 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...
- Spring Boot 微信-网页授权获取用户信息
微信-验证服务器有效性 微信-网页授权获取用户信息 网页授权获取用户信息步骤 第一步:用户同意授权,获取code 第二步:通过code换取网页授权access_token 第三步:拉取用户信息(需sc ...
- asp.net mvc C# 微信公众号-服务号开发 (用户网页授权获取用户昵称头像信息)...
参考文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432 一.安装Senparc.Weixin NuGet包 ...
- 微信开发 网页授权获取用户基本信息
微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一. ...
- 微信公众号开发系列-网页授权获取用户基本信息
OAuth2.0网页授权这个也是在做微信公众平台用到最多的,可以利用授权接口对自己平台内用户进行绑定,实现用户扫描码和微信分享.微信签到.微信商城购物等: 1.高级接口OAuth2.0网页授权设置 a ...
- 微信公众号开发之微信网页授权获取用户个人信息
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一丶概述 微信网页授权 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑 ...
最新文章
- HDLBits 系列(3)Priority Encoder(Case/Casez)
- scratch学习_学习scratch编程能学到什么?对孩子有帮助吗?
- win10 uwp 毛玻璃
- EXCEL如何验证重复数据?
- Windows Server 2008之三设置TCP/IP
- C语言用warshall算法求传递闭包transitive closure(附完整源码)
- nrm:安装与配置记录
- Android 内部存储安装apk文件实现
- 卡尔曼滤波和粒子滤波最直白的解释
- 从B站源码泄露事件入手,说一下团队协作中版本管理的安全意识
- MTK6589平板上launcher的一些小修改
- SXF2019子串模糊匹配
- FPGA-09FPGA-RGB TFT-LCD显示
- 隐私计算在普惠金融领域的应用研究
- IBM TSM 6.3学习笔记(1)
- 拥有WiFi 6+的华为路由 AX 3 Pro 到底香不香
- 倍投技巧 - 凯利公式教你如何用正确的方法投资
- 计算机毕业设计JavaVue.js音乐播放器设计与实现(源码+系统+mysql数据库+lw文档)
- Selenium库实现推特爬虫
- 将数字金额转换为中文大写金额