1 项目应用去微信开放平台申请,不是公众平台
2 在页面中添加微信登录按钮
需要修改的参数 appid:申请应用的appid,redirect_uri:登录后的回调地址(回调地址要在网站应用设置的回调域名下,不能有端口号,url要经过URLcode转码),其他不变
<a href=" https://open.weixin.qq.com/connect/qrconnect?appid=wxed213960e&redirect_uri=https%3a%2f%2frefuge.picp.vip%2fLoginThirdController%2fwxLogin&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect"> <img src="/images/li_img/weixin.jpg" alt="" class="logo"></a>
3,后台处理回调接口编写,登录成功会回调redirect_uri,并在地址添加code与state参数,只要code参数就行
@RequestMapping("wxLogin") public ModelAndView wxLogin(@RequestParam String code, ModelAndView modelAndView){
4.用返回的code 参数去微信服务器换取openid(用户唯一标志),修改的参数 appid ,secret(申请应用的密码),code刚取得的code
String url="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+appid+"&secret="+ secret+"&code="+code+"&grant_type=authorization_code";
可用httpclient请求。返回json字符串,用fastjson解析,并提取openid参数
JSONObject jsonObject= JSONObject.parseObject(result); Object openid= jsonObject.get("openid");
拿到用户id,解析完成。