View Javadoc
1   package com.foxinmy.weixin4j.wxa.api;
2   
3   import java.util.Properties;
4   
5   import com.alibaba.fastjson.JSON;
6   import com.alibaba.fastjson.TypeReference;
7   import com.foxinmy.weixin4j.exception.WeixinException;
8   import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
9   import com.foxinmy.weixin4j.token.TokenManager;
10  
11  abstract class TokenManagerApi extends WxaApi {
12  
13  	private final TokenManager tokenManager;
14  
15  	public TokenManagerApi(final TokenManager tokenManager) {
16  		this(tokenManager, null);
17  	}
18  
19  	public TokenManagerApi(final TokenManager tokenManager, final Properties properties) {
20  		super(properties);
21  		this.tokenManager = tokenManager;
22  	}
23  
24  	<T> T post(String key, Object params, TypeReference<T> typeReference) throws WeixinException {
25  		final String uri = this.getAccessTokenRequestUri(key);
26  		final String body = JSON.toJSONString(params);
27  		final WeixinResponse response = this.weixinExecutor.post(uri, body);
28  		return response.getAsObject(typeReference);
29  	}
30  
31  	String getAccessTokenRequestUri(String key) throws WeixinException {
32  		final String accessToken = tokenManager.getAccessToken();
33  		final String uri = this.getRequestUri(key, accessToken);
34  		return uri;
35  	}
36  
37  }