微信小程序获取用户OpenId
说明:sessionKey 后面会用到,返回就完事了一起取出来方便。
String appid = wxConfig.getAppId();
String ser = wxConfig.getSecret();
只需替换这2个值就OK了,替换成你的小程序的
public WxEntity getOpenId(String code){
WxEntity wx = new WxEntity();
String appid = wxConfig.getAppId();
String ser = wxConfig.getSecret();
String url = " https://api.weixin.qq.com/sns/jscode2session?appid="+appid+"&secret="+ser+"&js_code="+code+"&grant_type=authorization_code";
String rst = doGet(url, "GBK");
if (rst.equals("null")){
return new WxEntity();
}
log.info("调用OpenID接口返回信息为 : {}",rst);
JSONObject jsonObject = JSONObject.parseObject(rst);
String openID = "";
String sessionKey = "";
try {
sessionKey = jsonObject.getString("session_key");
openID = jsonObject.getString("openid");
} catch (Exception e) {
log.info("获取OpenId错误 ====> {}",e.getMessage());
e.printStackTrace();
}
wx.setOpenid(openID);
wx.setSessionKey(sessionKey);
return wx;
}
doGet方法
public static String doGet(String url, String charset) {
try {
URL httpURL = new URL(url);
HttpURLConnection http = (HttpURLConnection) httpURL
.openConnection();
http.setRequestProperty("Content-type", "text/html");
BufferedReader br = new BufferedReader(new InputStreamReader(http
.getInputStream(), charset));
StringBuilder sb = new StringBuilder();
String temp = null;
while ((temp = br.readLine()) != null) {
sb.append(temp);
sb.append("\n");
}
br.close();
return sb.toString();
} catch (Exception e) {
log.info("获取OpenId 发送GET 请求错误 ====> {}",e.getMessage());
e.printStackTrace();
return "null";
}
}