使用 Java 获取微信开发中需要用到的 AccessToken,超精简~
需要准备的东西:appid、secret (均可在微信公众平台后台获取)
我使用了 Spring Boot 作为开发框架。
建项目等基本步骤就跳过啦,直接上核心代码 ~
Spring Boot 启动器:
@Configuration @SpringBootApplication public class Application { public static void main(String[] args){ SpringApplication.run(Application.class,args); } @Bean public RestTemplate getRestTemplate(){ return new RestTemplate(); } }
然后是一个接口调用结果的 实体类:
public class AccessTokenResult implements Serializable{ private String access_token; private Integer expires_in; private String errcode; private String errmsg; //省略相关的GetSet方法 }
核心代码 Controller:
@RestController public class WeiXinSDKController { private static final String APPID = "你的APPID"; private static final String SECRET = "你的SECRET"; private String access_token; private Long access_token_updateTime; @Autowired private RestTemplate restTemplate; @GetMapping("getAccessToken") public String getAccessToken() throws Exception { return getAccessToken(); } private String getAccessToken() { if (access_token != null && (access_token_updateTime + 5400000) > new Date().getTime()) return access_token; AccessTokenResult accessTokenResult = restTemplate.getForObject(String.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", APPID, SECRET), AccessTokenResult.class); if (accessTokenResult.getErrcode() == null || accessTokenResult.getErrcode().equals("0")) { access_token_updateTime = new Date().getTime(); access_token = accessTokenResult.getAccess_token(); } else System.out.println("error:" + accessTokenResult); return accessTokenResult.getAccess_token(); } }使用 access_token_updateTime 这个变量主要是用来控制AccessToken的刷新间隔,因为微信返回的AccessToken只有两个小时的有效时间,所以代码中我设置的是每隔一个半小时就重新获取一次。
没了~