微信扫码登录-JAVA

参考资料(微信开发平台):https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316518&lang=zh_CN

总结(实现流程):

  A.注册(交钱):获取appid,secret以及设定扫码之后跳转的域名

       B.获取code

       C..获取access_token,openid

  D.获取微信用户信息

  E.判断是关联目标系统的用户,进而进行下一步操作

具体步骤

  A:见参考资料

  B:根据appid,redirect_uri获取code:appid步骤A获取,redirect_uri为包含步骤给定域名的请求

https://open.weixin.qq.com/connect/qrconnect?appid=${appid}&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_login&state=wxLogin

   b1.生成微信二维码(实例)   

<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
<div class="main impowerBox">
<div class="loginPanel normalPanel" style="position: absolute;top: 1%;left: 2%;">
<div class="waiting panelContent">
<div class="wrp_code" id="login_container"></div>
<div class="info">
<div class="status status_succ js_status normal" style="display:none" id="wx_after_scan">
<i class="status_icon icon38_msg succ"></i>
<div class="status_txt">
<h4>扫描成功</h4>
<p>请在微信中点击确认即可登录</p>
</div>
</div>
<div class="status status_fail js_status normal" style="display:none" id="wx_after_cancel">
<i class="status_icon icon38_msg warn"></i>
<div class="status_txt">
<h4>您已取消此次登录</h4>
<p>您可再次扫描登录,或关闭窗口</p>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var obj = new WxLogin({
id:"login_container",
appid: "${appId}", //A步骤获取
scope: "snsapi_login",
redirect_uri: "http://${dasiHost}${path}${loginBackUrl}", //dasiHost为A步骤时给定的域名
state: "wxLogin",
style: "white",
href: "${weixinCssUrl}" //当前页面的css,必须https能够访问
});
</script>

   b2.扫码之后redirect_uri会带上code=code码

C:根据code码获取access_token 、openid:appid,secret步骤A中获取,code步骤B获取

  https://api.weixin.qq.com/sns/oauth2/access_token?appid=${appid}&secret=${secret}&code=${code}&grant_type=authorization_code

D:获取access_token获取微信用户信息:

https://api.weixin.qq.com/sns/userinfo?access_token=${access_token}&openid=ov9LUwaSPGBIsls7aZUmvu3q7ths&lang=zh_CN

####各个步骤入参和返回值在A步骤参考文档都有详细说明

####C、D步骤直接在JAVA代码中通过URL请求直接获取返信息进行操作

E:将来微信用户信息写入数据库,中间表 id studentid  wx_user_id

 

posted @ 2018-01-05 17:46  卿祛病  阅读(2112)  评论(0编辑  收藏  举报