优化WeixinTokenSuiteCreator的构造函数

This commit is contained in:
jinyu 2015-12-05 10:21:00 +08:00
parent f2af43e46b
commit 105cf4bfe8
2 changed files with 8 additions and 10 deletions

View File

@ -108,7 +108,7 @@ public class SuiteApi extends QyApi {
* @return 企业号token
*/
public TokenHolder createTokenHolder(String authCorpId) {
return new TokenHolder(new WeixinTokenSuiteCreator(authCorpId,
return new TokenHolder(new WeixinTokenSuiteCreator(
getPerCodeHolder(authCorpId), suiteTokenHolder),
suiteTicketHolder.getTokenStorager());
}
@ -166,7 +166,7 @@ public class SuiteApi extends QyApi {
SuitePerCodeHolder suitePerCodeHolder = getPerCodeHolder(oInfo
.getCorpInfo().getCorpId());
// 缓存微信企业号access_token
TokenCreator tokenCreator = new WeixinTokenSuiteCreator(null,
TokenCreator tokenCreator = new WeixinTokenSuiteCreator(
suitePerCodeHolder, suiteTokenHolder);
Token token = new Token(obj.getString("access_token"));
token.setExpiresIn(obj.getIntValue("expires_in"));

View File

@ -23,22 +23,18 @@ import com.foxinmy.weixin4j.token.TokenHolder;
public class WeixinTokenSuiteCreator implements TokenCreator {
private final WeixinRequestExecutor weixinExecutor;
private final String authCorpId;
private final SuitePerCodeHolder perCodeHolder;
private final TokenHolder suiteTokenHolder;
/**
*
* @param authCorpId
* 授权方corpid
* @param perCodeHolder
* 永久授权码
* @param suiteTokenHolder
* 套件token
*/
public WeixinTokenSuiteCreator(String authCorpId,
SuitePerCodeHolder perCodeHolder, TokenHolder suiteTokenHolder) {
this.authCorpId = authCorpId;
public WeixinTokenSuiteCreator(SuitePerCodeHolder perCodeHolder,
TokenHolder suiteTokenHolder) {
this.perCodeHolder = perCodeHolder;
this.suiteTokenHolder = suiteTokenHolder;
this.weixinExecutor = new WeixinRequestExecutor();
@ -47,14 +43,16 @@ public class WeixinTokenSuiteCreator implements TokenCreator {
@Override
public String getCacheKey() {
return String.format("qy_token_suite_%s:%s",
perCodeHolder.getSuiteId(), authCorpId);
perCodeHolder.getSuiteId(), perCodeHolder.getAuthCorpId()
);
}
@Override
public Token createToken() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("suite_id", perCodeHolder.getSuiteId());
obj.put("auth_corpid", authCorpId);
obj.put("auth_corpid", perCodeHolder.getAuthCorpId());
obj.put("permanent_code", perCodeHolder.getPermanentCode());
WeixinResponse response = weixinExecutor.post(
String.format(URLConsts.TOKEN_SUITE_URL,