1. 程式人生 > >Java獲取微信AccessToken

Java獲取微信AccessToken

使用 Java 獲取微信開發中需要用到的 AccessToken,超精簡~

需要準備的東西:appidsecret   (均可在微信公眾平臺後臺獲取)

我使用了 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
("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只有兩個小時的有效時間,所以程式碼中我設定的是每隔一個半小時就重新獲取一次。

沒了~