欢迎大家来到IT世界,在知识的湖畔探索吧!
先看结果:
1.条件:已申请了公众号和服务器.
2.在微信中打开下列链接:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxXXXXXXXX&redirect_uri=http://xxxxxx.com/app/wx/wx_godazzpublic.jsp&response_type=code&scope=snsapi_base&state=123#wechat_redirect
3.用jsp直接了解结果.
在服务器XXXX.com/wx/下加入:wx_public.jsp,内容如下:
<%@page import=”cn.hutool.http.HttpUtil”%>
<%@page import=”cn.hutool.core.util.StrUtil”%>
<%@page import=”cn.hutool.json.*”%>
<%@page import=”java.io.*”%>
<%@ page language=”java” contentType=”text/html; charset=UTF-8″ pageEncoding=”UTF-8″%>
<!DOCTYPE html>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head><meta http-equiv=”Content-Type” content=”text/html; charset=UTF8″ />
<meta charset=”UTF8″ />
<meta name=”viewport” content=”width=device-width” /><title>
公众号–是否关注
</title>
<link rel=”SHORTCUT ICON” href=”/images/ico.png” />
</head>
<body oncontextmenu=”return false”>
<script src=”http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js”></script>
<%
String app_id=”wxXXXXXXXXXXXXXX”;
String app_secret=”6cafXXXXXXXXXXXXXXXXX”;
//String state=request.getParameter(“state”);
//out.println(“mid======”+state);
//1——————获取扫描二维码返回的 授权临时票据 code
String code = request.getParameter(“code”);
//out.println(“<br><br>授权临时票据 code:”+code);
//2——————通过 app_id, app_secret 和 code 获取接口调用凭证 access_token 和 授权用户唯一标识 openid
String getAccessTokenURLFormat = “https://api.weixin.qq.com/sns/oauth2/access_token?appid={}&secret={}&code={}&grant_type=authorization_code”;
String getAccessTokenURL = StrUtil.format(getAccessTokenURLFormat, app_id,app_secret,code);
//out.println(“getAccessTokenURL===”+getAccessTokenURL);
//通过 hutool 工具类 访问url
String tokenResponse = HttpUtil.get(getAccessTokenURL);
//通过 hutool 工具类 转换为 json 对象
JSONObject tokenJson= JSONUtil.parseObj(tokenResponse);
//out.println(“tokenJson===”+tokenJson);
//获取json 对象相关字段
Integer errcode = (Integer)tokenJson.get(“errcode”);
String errmsg = (String)tokenJson.get(“errmsg”);
String openid = (String)tokenJson.get(“openid”);
String session_access_token = (String)tokenJson.get(“access_token”);
//先判断是否返回错误信息,如果是,则提示错误
if(null!=errcode){
out.println(“<br><br>出错,错误信息:”+errmsg);
return;
}
out.println(“<br><br><span style=’color:green’>登录成功!</span>”);
//打印 服务端返回的数据
out.println(“<br><br>授权临时票据 code:”+code);
out.println(“<br><br> 接口调用凭证 access_token:”+session_access_token);
out.println(“<br><br> 授权用户唯一标识 (这个可以与数据库里已经存在的用户数据进行关联) openid:”+openid);
String sbase_token=”https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=”+app_id+”&secret=”+app_secret;
//通过hutool 工具类获取用户信息
String base_tokenResponse = HttpUtil.get(sbase_token);
//通过 hutool 工具类转换为 json 对象
JSONObject base_tokenJson= JSONUtil.parseObj(base_tokenResponse);
out.println(“<br><br>base_tokenJson===”+base_tokenJson);
//3—————————–通过 接口调用凭证 access_token 和 授权用户唯一标识 openid 就可以获取用户信息了
String web_access_token = (String)base_tokenJson.get(“access_token”);
out.println(“<br><br>web_access_token===”+web_access_token);
String surl=”https://api.weixin.qq.com/cgi-bin/user/info?access_token=”+web_access_token+”&openid=”+openid+”&lang=zh_CN”;
//String surl = “https://api.weixin.qq.com/sns/userinfo?access_token=”+web_access_token+”&openid=”+openid+”&lang=zh_CN”;
out.println(“<br><br> surl:”+surl);
//1.
//String getUserInfoURLFormat = “https://api.weixin.qq.com/sns/userinfo?access_token={}&openid={}”;
//String getUserInfoURL = StrUtil.format(getUserInfoURLFormat,access_token,openid);
//2.
String getUserInfoURL=surl;
//通过hutool 工具类获取用户信息
String userInfoResponse = HttpUtil.get(getUserInfoURL);
//通过 hutool 工具类转换为 json 对象
JSONObject userInfoJson= JSONUtil.parseObj(userInfoResponse);
out.println(“<br><br>userInfoJson===”+userInfoJson);
//通过 hutool 工具获取微信昵称和头像图片地址
//String subscribe = (String)userInfoJson.get(“subscribe”);
int subscribe= userInfoJson.getInt(“subscribe”);
String nickname = (String)userInfoJson.get(“nickname”);
String headimgurl = (String)userInfoJson.get(“headimgurl”);
out.println(“<br><br>subscribe:”+subscribe);
out.println(“<br><br>微信名称:”+nickname);
out.println(“<br><br>微信头像:<img src='”+headimgurl+”‘/>”);
%>
</body>
</html>
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22108.html