首先先从前端获取code传递到java后台(这个我就不介绍了,获取code的方法百度一堆)
接着要获取企业用户的corpid为每个企业都拥有唯一的corpid(获取此信息可在管理后台“我的企业”-“企业信息”下查看(需要有管理员权限))
corpsecret是企业应用里面用于保障数据安全的“钥匙”,每一个应用都有一个独立的访问密钥
package com.xxx.login.action;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* 企业微信
*
* @author ygd
*
*/
@RestController
@RequestMapping(value = "qiye")
public class QiYeWeixinAction {
private Logger logger = LoggerFactory.getLogger(this.getClass());
/**
* 获取企业微信用户信息
*/
@RequestMapping(params="operate=findUserId",method=RequestMethod.GET)
public String token(String code,HttpServletResponse response,HttpServletRequest request){
// corpid为每个企业都拥有唯一的corpid
// corpsecret是企业应用里面用于保障数据安全的“钥匙
String corpid = "";
String corpsecret = "";
try {
String token = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+ corpid + "&corpsecret=" + corpsecret;
//获取access_token
JSONObject myJsonObject = path(token);
String access_token = myJsonObject.getString("access_token");
String userId = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token="
+ access_token + "&code=" + code;
//获取用户UserId
JSONObject myJsonObject2 = path(userId);
String userId_token = myJsonObject2.getString("UserId");
String path = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token="+access_token+"&userid="+userId_token;
//重定向跳转
response.sendRedirect(path);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 将路径解析
* @param url
*/
public JSONObject path(String url){
URL u;
HttpsURLConnection huconn;
JSONObject myJsonObject = null;
try {
u = new URL(url);
huconn = (HttpsURLConnection) u.openConnection();
BufferedReader in = null;
StringBuilder result = new StringBuilder();
huconn.connect();
in = new BufferedReader(new InputStreamReader(huconn.getInputStream(),
"UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result.append(line);
}
if (in != null) {
in.close();
}
// 返回结果为JSONObject格式,需要再做一步操作获取token
myJsonObject = new JSONObject();
myJsonObject = JSONObject.fromObject(result.toString());
} catch (IOException e) {
e.printStackTrace();
}
return myJsonObject;
}
}
总体来说就可以获取用户数据了,如果需要获取指定数据,那就用上面写的 myJsonObject.getString(“xxx”);这样就能在后台获取指定数据,然后再存储的json字符串中,最后展示到页面即可
第一次写博客,希望多多支持!