(1)获取token
public String getMingzhuOpenId(String code){
try {
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.weixin.qq.com/sns/jscode2session?" +
"appid=" + accountConfig.getMpAppId() + "&" +
"secret=" + accountConfig.getMpAppSecret() + "&" +
"js_code=" + code + "&grant_type=authorization_code")
.method("GET", null)
.build();
Response response = client.newCall(request).execute();
return JSON.parseObject(response.body().string()).get("openid").toString();
}catch (Exception e){
log.error("获取植物明珠的openid失败",e);
}
return null;
(2) 获取手机号
@Override
public String getMingzhuuserphonenumber(String code) {
String url ="https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=ACCESS_TOKEN";
JSONObject numberJson = new JSONObject();
numberJson.put("code", code);
String ret = HttpUtil.post(url.replace("ACCESS_TOKEN", getAccessToken()), numberJson.toJSONString());
log.info("ret:{}", ret);
JSONObject json = JSONObject.parseObject(ret).getJSONObject("phone_info");
if (json == null || null == json.get("purePhoneNumber") || StringUtils.isBlank(json.getString("purePhoneNumber"))) {
throw new WangyaoException(ResponseEnum.WX_GETUSERPHONENUM_FAIL);
}
return json.getString("phoneNumber");
}
public String getAccessToken() {
String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET";
String accessToken = null;
String atRet = HttpUtil.get(
url.replace("APPID", accountConfig.getMpAppId()).replace("SECRET", mingzhuWechatAccountConfig.getMpAppSecret()));
accessToken = JSONObject.parseObject(atRet).getString("access_token");
return accessToken;
}