Java获取微信access_token。
但是我偷懒,所以有的部分使用了依赖包。
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency>
之后就是代码了。
package cn.sanshu; import com.alibaba.fastjson.JSONObject; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import cn.sanshu.pojo.AccessToken; public class TokenUtil { //从微信后台拿到APPID和APPSECRET 并封装为常量 private static final String APPID = "您的APPID"; private static final String APPSECRET = "您的APPSECRET"; private static final String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"; /** * 获取AccessToken * @return 返回拿到的access_token及有效期 */ public static AccessToken getAccessToken(String appid){ String tokenFilePath = "D:\\temp\\"+appid+"_token.json"; AccessToken token=null; if(FileUtil.exist(tokenFilePath)) { String accessTokenStr = FileUtil.readUtf8String(tokenFilePath); token = JSONObject.parseObject(accessTokenStr, AccessToken.class); if(token.getExpire_time()<System.currentTimeMillis()) { token = null; } } if(token ==null) { String url = ACCESS_TOKEN_URL.replace("APPID", APPID).replace("APPSECRET", APPSECRET);//将URL中的两个参数替换掉 String tokenResp =HttpUtil.get(url); if(StrUtil.isEmpty(tokenResp)) { System.err.println("获取token失败,返回为空"); } token = JSONObject.parseObject(tokenResp, AccessToken.class); long expireTime = System.currentTimeMillis()+token.getExpires_in()*1000; token.setExpire_time(expireTime); FileUtil.writeUtf8String(JSONObject.toJSONString(token), tokenFilePath); } return token; } }
调用方法:
public static void main(String[] args) { AccessToken token = getAccessToken(APPID); System.out.println(JSONObject.toJSONString(token)); }