您的位置:首页 > 移动开发 > 微信开发

微信获取access_token永久有效

2015-01-24 21:25 477 查看
/**
* 获取access_token

* // 获取access_token的接口地址(GET) 限2000(次/天)

* @param appid 凭证

* @param appsecret 密钥

* @return

*/

public static AccessToken accessToken() {

AccessToken accessToken = null;

String access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";

String requestUrl = access_token_url.replace("APPID", Baseutils.APPID).replace("APPSECRET", Baseutils.APPSECRET);

JSONObject jsonObject = httpRequest(requestUrl, "GET", null);

if (null != jsonObject) {// 如果请求成功

try {

accessToken = new AccessToken();

accessToken.setToken(jsonObject.getString("access_token"));

accessToken.setExpiresIn(jsonObject.getInt("expires_in"));

} catch (JSONException e) {

accessToken = null;// 获取token失败

log.error(jsonObject.getString("获取token失败 errcode:{"+ jsonObject.getInt("errcode")+"} errmsg:{"+jsonObject.getString("errmsg"))+"}");

}

}

return accessToken;

}

/**

*

* accessToken:(ACCESS_TOKEN长期有效).

*

* @author hankeqi

* @param  @return          设定文件

* @throws String   DOM对象

* @since  JDK 1.7

*/

public static String getAccessToken() {

String token = "";

int seconds = 7200;

try {

token = RedisClient.get(CacheKeyUtil.WECHATAACCESSTOKEN);

if (Baseutils.isEmpty(token)) {

token = accessToken().getToken();

seconds = accessToken().getExpiresIn();

RedisClient.putTimeOut(CacheKeyUtil.WECHATAACCESSTOKEN,seconds, token);

}

log.info("/*****************redis获取token=" + token+ "*************************/");

} catch (Exception e) {

if (Baseutils.isEmpty(token)) {

token = accessToken().getToken();//腾讯获取 不是长期有效的

log.error("/*****************redis服务器未开启,请运维人员去服务器开启redis服务器!*************************/",e);

}

}

return token;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: