关闭

微信登录开发-java

标签: 微信登录
2891人阅读 评论(0) 收藏 举报
分类:
微信登录:
1、申请微信开放平台,获取微信登录接口
2、测试登录接口是否正常
redirect_uri重定向地址(微信申请的http://+‘授权回调域’),需要进行UrlEncode。
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
3、开发后台接收代码
4、两种二维码嵌入方法:
一、使用微信页面
在界面使用<a href="https://open.weixin.qq.com/connect/qrconnect?appid=appid&redirect_uri=url&response_type=code&scope=snsapi_login&state=state#wechat_redirect"></a>
该方法不需要再对工程的界面进行什么js处理。
二、使用 网站内嵌二维码
在需要使用二维码的界面添加
展示二维码的位置设置<div id="login_container"></div>  id与js里面的id一致
(在页面最后面)
<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
<script>
var obj = new WxLogin({
                              id:"login_container", 
                              appid: "appid", 
                              scope: "snsapi_login", 
                              redirect_uri: "http%3a%2f%2fXXXX.com%2fregist%2fwxlogin",
                              state: "state",
                              style: "black",
                              href: ".impowerBox .title {display: none;}"
                            });
</script>
注:该方法是微信js帮忙生成的二维码,不需要再添加图片什么的。
5、再Action层获取code进行需要的业务处理
String code = request.getParameter("code");

6、有什么需要获取的根据微信提供的api进行后台访问拼接的接口地址可以返回对应的数据。


简单原理:

表面上的步骤如下:
1、[电脑] 打开https://open.weixin.qq.com/,得到二维码
2、[手机] 点开扫一扫,扫描PC端二维码,并且扫描成功
3、[电脑] 提示扫描成功,[手机] 询问是否确认登陆

4、[手机] 确认登陆

5、[电脑] 跳转到配置的网址


其实对应的内部机制差不多是这样的:
1、电脑请求网页后,微信服务器生成一个唯一的ID(这里是UUID)给客户端网页,客户端定时发起向微信服务器的连接(这里类似于轮询),微信服务器保持这个连接(这里类似于长连接),保持一段时间(大概27秒)返回一个“还没人扫码”的标识,于是客户端再开连接
2、手机微信扫码并解码,解码出来是一个URL也好,是一段文本也好,总之这段东西匹配了手机微信登陆网页版的要求,于是手机微信带着解码出来的信息去请求微信服务器。这里就已经达到了特定微信账号和某个特定网页相关联的目的
3、电脑这里微信服务器马上在长连接中返回“有人扫码了”的表示并结束连接,网页提示扫描成功,然后打开长连接等待确认登陆的标识;手机这里么则根据二维码的信息打开对应网页确认登陆
4、后面其实和前面一样了,手机微信确认登陆的其实就是请求服务器说这个可以登录了,然后服务器给网页的长连接中返回可以登录的标识并结束长连接,然后跳转到消息网页

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2905次
    • 积分:38
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档
    阅读排行
    评论排行