Java獲取微信AccessToken
阿新 • • 發佈:2019-01-02
使用 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:
@RestControllerpublic 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使用 access_token_updateTime 這個變數主要是用來控制AccessToken的重新整理間隔,因為微信返回的AccessToken只有兩個小時的有效時間,所以程式碼中我設定的是每隔一個半小時就重新獲取一次。("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(); } }
沒了~