@RequestMapping(value = “/decodeUserInfo”, produces = “application/json”)
@ResponseBody
public ReturnMsg decodeUserInfo(String code,String appid,String secret,String type) {
try {
//登录凭证不能为空
if (code == null || code.length() == 0) {
return ReturnMsg.error(“code 不能为空”);
}
1、向微信服务器 使用登录凭证 code 获取 session_key 和 openid
//请求参数
String params = “appid=” + appid + “&secret=” + secret + “&js_code=” + code + “&grant_type=” + type;
//发送请求
String sr =sendGet("https://api.weixin.qq.com/sns/jscode2session", params);
//解析相应内容(转换成json对象)
JSONObject json = JSONObject.fromObject(sr);
//用户的唯一标识(openid)
String openid = (String) json.get("openid");
return ReturnMsg.success("获取顾客信息详情成功!",openid);
}catch(Exception e){
e.printStackTrace();
return ReturnMsg.error("获取顾客信息详情失败,请重试!");
}
}
public String senddGet(String url, String param){
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
public static String sendGet(String url1, String param) {
StringBuffer buffer = null;
try {
// 建立连接
URL url = new URL(url1 + "?" + param);
HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();
httpUrlConn.setDoInput(true);
httpUrlConn.setRequestMethod("GET");
// 获取输入流
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 读取返回结果
buffer = new StringBuffer();
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
// 释放资源
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
httpUrlConn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return buffer.toString();
}