参考资料(微信开发平台):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