微信公众平台为开发者提供了一系列接口,开发者通过调用这些接口能够实现自定义菜单管理、用户管理、消息群发、语义理解等功能,在调用这些接口时都需要传入接口访问凭证access_token。公众平台提供了专门的接口来获取access_token。
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
grant_type : 获取access_token时填写固定值client_credential
appid : 第三方用户唯一凭证
secret : 第三方用户唯一凭证密钥,即appsecret
正常情况下,微信服务器会返回一个json数据包:
{"access_token":"xPweai4C99s5gHo55DRYHUXAmVDlzgX7TJM_7eJ_DpTqKWkekhMDkhEh-FxKCgpC2jQFHx97sAfH1s1_GGFaqf4yEPbd9aJpP-nPT-jXq9wdP-iMOJRo967jaDHy3E0eIQVgAFAWEJ","expires_in":7200}
access_token : 接口访问凭证,调用公众平台其他接口时需要
expires_in : 凭证的有效时长,单位:秒
通过JSON类解析返回的json数据包:
/**
* 获取access_token
*
* @param appid
* 公众号的唯一凭证
* @param appsecret
* 密钥
* @return
*/
public static Token getAccessToken(String appid, String appsecret) {
Token token = new Token();
// 拼接请求地址
String requestUrl = token_url.replace("APPID", appid).replace(
"APPSECRET", appsecret);
// 调用接口
String jsonString = CommonUtil.httpsRequest(requestUrl, "GET", null);
try {
// 将json字符串转换成java对象
JSONObject jsonObject = JSONObject.fromObject(jsonString);
String accessToken = jsonObject.getString("access_token");
int expiresIn = jsonObject.getInt("expires_in");
token.setAccess_token(accessToken);
token.setExpires_in(expiresIn);
} catch (Exception e) {
e.printStackTrace();
}
return token;
}