From 845c4d111be6a0c124c617725da93a4e0a2f2eee Mon Sep 17 00:00:00 2001 From: jinyu Date: Wed, 30 Mar 2016 18:45:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/weixin/WeixinRequestExecutor.java | 2 +- .../mp/token/WeixinTicketCreator.java | 16 +- .../weixin4j/qy/suite/SuitePerCodeHolder.java | 146 +++++++++--------- .../weixin4j/qy/suite/SuiteTicketHolder.java | 142 ++++++++--------- .../qy/suite/WeixinTokenSuiteCreator.java | 134 ++++++++-------- .../qy/token/WeixinTicketCreator.java | 137 ++++++++-------- 6 files changed, 286 insertions(+), 291 deletions(-) diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/weixin/WeixinRequestExecutor.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/weixin/WeixinRequestExecutor.java index bed6bae3..6e2aaef4 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/weixin/WeixinRequestExecutor.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/weixin/WeixinRequestExecutor.java @@ -95,7 +95,7 @@ public class WeixinRequestExecutor { return doRequest(request); } - public WeixinResponse doRequest(HttpRequest request) throws WeixinException { + protected WeixinResponse doRequest(HttpRequest request) throws WeixinException { request.setParams(params); try { logger.info("weixin request >> " + request.getMethod() + " " diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTicketCreator.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTicketCreator.java index bfb4ca03..59548205 100644 --- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTicketCreator.java +++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTicketCreator.java @@ -17,9 +17,9 @@ import com.foxinmy.weixin4j.type.TicketType; * @author jy * @date 2015年1月10日 * @since JDK 1.6 - * @see JS - * TICKET + * @see + * JS TICKET */ public class WeixinTicketCreator implements TokenCreator { @@ -38,8 +38,7 @@ public class WeixinTicketCreator implements TokenCreator { * @param weixinTokenHolder * 公众平台的access_token */ - public WeixinTicketCreator(String appid, TicketType ticketType, - TokenHolder weixinTokenHolder) { + public WeixinTicketCreator(String appid, TicketType ticketType, TokenHolder weixinTokenHolder) { this.appid = appid; this.ticketType = ticketType; this.weixinTokenHolder = weixinTokenHolder; @@ -48,14 +47,13 @@ public class WeixinTicketCreator implements TokenCreator { @Override public String getCacheKey() { - return String.format("weixin4j_mp_ticket_%s_%s", appid, ticketType.name()); + return String.format("weixin4j_mp_ticket_%s_%s", ticketType.name(), appid); } @Override public Token createToken() throws WeixinException { - WeixinResponse response = weixinExecutor.get(String.format( - URLConsts.TICKET_URL, weixinTokenHolder.getToken() - .getAccessToken(), ticketType.name())); + WeixinResponse response = weixinExecutor.get( + String.format(URLConsts.TICKET_URL, weixinTokenHolder.getToken().getAccessToken(), ticketType.name())); JSONObject result = response.getAsJson(); Token token = new Token(result.getString("ticket")); token.setExpiresIn(result.getIntValue("expires_in")); diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/SuitePerCodeHolder.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/SuitePerCodeHolder.java index 92d400ab..6f1c43e0 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/SuitePerCodeHolder.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/SuitePerCodeHolder.java @@ -1,73 +1,73 @@ -package com.foxinmy.weixin4j.qy.suite; - -import com.foxinmy.weixin4j.exception.WeixinException; -import com.foxinmy.weixin4j.model.Token; -import com.foxinmy.weixin4j.token.TokenStorager; - -/** - * 应用套件永久授权码的存取 - * - * @className SuitePerCodeHolder - * @author jy - * @date 2015年6月22日 - * @since JDK 1.6 - * @see - */ -public class SuitePerCodeHolder { - - private final String authCorpId; - private final String suiteId; - private final TokenStorager tokenStorager; - - public SuitePerCodeHolder(String authCorpId, String suiteId, - TokenStorager tokenStorager) { - this.authCorpId = authCorpId; - this.suiteId = suiteId; - this.tokenStorager = tokenStorager; - } - - /** - * 缓存永久授权码 - * - * @param permanentCode - * @throws WeixinException - */ - public void cachingPermanentCode(String permanentCode) - throws WeixinException { - Token token = new Token(permanentCode); - token.setExpiresIn(-1); - tokenStorager.caching(getCacheKey(), token); - } - - /** - * 获取永久授权码的key - * - * @return - */ - public String getCacheKey() { - return String.format("weixin4j_qy_suite_percode_%s:%s", suiteId, - authCorpId); - } - - /** - * 查找永久授权码 - * - * @return - * @throws WeixinException - */ - public String getPermanentCode() throws WeixinException { - return tokenStorager.lookup(getCacheKey()).getAccessToken(); - } - - public String getSuiteId() { - return this.suiteId; - } - - public String getAuthCorpId() { - return this.authCorpId; - } - - public TokenStorager getTokenStorager() { - return this.tokenStorager; - } -} +package com.foxinmy.weixin4j.qy.suite; + +import com.foxinmy.weixin4j.exception.WeixinException; +import com.foxinmy.weixin4j.model.Token; +import com.foxinmy.weixin4j.token.TokenStorager; + +/** + * 应用套件永久授权码的存取 + * + * @className SuitePerCodeHolder + * @author jy + * @date 2015年6月22日 + * @since JDK 1.6 + * @see + */ +public class SuitePerCodeHolder { + + private final String authCorpId; + private final String suiteId; + private final TokenStorager tokenStorager; + + public SuitePerCodeHolder(String authCorpId, String suiteId, + TokenStorager tokenStorager) { + this.authCorpId = authCorpId; + this.suiteId = suiteId; + this.tokenStorager = tokenStorager; + } + + /** + * 缓存永久授权码 + * + * @param permanentCode + * @throws WeixinException + */ + public void cachingPermanentCode(String permanentCode) + throws WeixinException { + Token token = new Token(permanentCode); + token.setExpiresIn(-1); + tokenStorager.caching(getCacheKey(), token); + } + + /** + * 获取永久授权码的key + * + * @return + */ + public String getCacheKey() { + return String.format("weixin4j_qy_suite_percode_%s_%s", suiteId, + authCorpId); + } + + /** + * 查找永久授权码 + * + * @return + * @throws WeixinException + */ + public String getPermanentCode() throws WeixinException { + return tokenStorager.lookup(getCacheKey()).getAccessToken(); + } + + public String getSuiteId() { + return this.suiteId; + } + + public String getAuthCorpId() { + return this.authCorpId; + } + + public TokenStorager getTokenStorager() { + return this.tokenStorager; + } +} diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/SuiteTicketHolder.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/SuiteTicketHolder.java index 4a89a04a..c9d73a3e 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/SuiteTicketHolder.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/SuiteTicketHolder.java @@ -1,71 +1,71 @@ -package com.foxinmy.weixin4j.qy.suite; - -import com.foxinmy.weixin4j.exception.WeixinException; -import com.foxinmy.weixin4j.model.Token; -import com.foxinmy.weixin4j.token.TokenStorager; - -/** - * 应用套件ticket的存取 - * - * @className SuiteTicketHolder - * @author jy - * @date 2015年6月22日 - * @since JDK 1.6 - * @see - */ -public class SuiteTicketHolder { - - private final String suiteId; - private final String suiteSecret; - private final TokenStorager tokenStorager; - - public SuiteTicketHolder(String suiteId, String suiteSecret, - TokenStorager tokenStorager) { - this.suiteId = suiteId; - this.suiteSecret = suiteSecret; - this.tokenStorager = tokenStorager; - } - - /** - * 获取ticket - * - * @return - * @throws WeixinException - */ - public String getTicket() throws WeixinException { - return tokenStorager.lookup(getCacheKey()).getAccessToken(); - } - - /** - * 获取ticket的key - * - * @return - */ - public String getCacheKey() { - return String.format("qy_suite_ticket_%s", suiteId); - } - - /** - * 缓存ticket - * - * @param ticket - * @throws WeixinException - */ - public void cachingTicket(String ticket) throws WeixinException { - Token token = new Token(ticket); - token.setExpiresIn(-1); - tokenStorager.caching(getCacheKey(), token); - } - - public String getSuiteId() { - return this.suiteId; - } - - public String getSuiteSecret() { - return this.suiteSecret; - } - - public TokenStorager getTokenStorager() { - return this.tokenStorager; - } -} +package com.foxinmy.weixin4j.qy.suite; + +import com.foxinmy.weixin4j.exception.WeixinException; +import com.foxinmy.weixin4j.model.Token; +import com.foxinmy.weixin4j.token.TokenStorager; + +/** + * 应用套件ticket的存取 + * + * @className SuiteTicketHolder + * @author jy + * @date 2015年6月22日 + * @since JDK 1.6 + * @see + */ +public class SuiteTicketHolder { + + private final String suiteId; + private final String suiteSecret; + private final TokenStorager tokenStorager; + + public SuiteTicketHolder(String suiteId, String suiteSecret, + TokenStorager tokenStorager) { + this.suiteId = suiteId; + this.suiteSecret = suiteSecret; + this.tokenStorager = tokenStorager; + } + + /** + * 获取ticket + * + * @return + * @throws WeixinException + */ + public String getTicket() throws WeixinException { + return tokenStorager.lookup(getCacheKey()).getAccessToken(); + } + + /** + * 获取ticket的key + * + * @return + */ + public String getCacheKey() { + return String.format("weixin4j_qy_suite_ticket_%s", suiteId); + } + + /** + * 缓存ticket + * + * @param ticket + * @throws WeixinException + */ + public void cachingTicket(String ticket) throws WeixinException { + Token token = new Token(ticket); + token.setExpiresIn(-1); + tokenStorager.caching(getCacheKey(), token); + } + + public String getSuiteId() { + return this.suiteId; + } + + public String getSuiteSecret() { + return this.suiteSecret; + } + + public TokenStorager getTokenStorager() { + return this.tokenStorager; + } +} diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java index f09928a3..4eab20c3 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java @@ -1,67 +1,67 @@ -package com.foxinmy.weixin4j.qy.suite; - -import com.alibaba.fastjson.JSONObject; -import com.foxinmy.weixin4j.exception.WeixinException; -import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor; -import com.foxinmy.weixin4j.http.weixin.WeixinResponse; -import com.foxinmy.weixin4j.model.Token; -import com.foxinmy.weixin4j.qy.type.URLConsts; -import com.foxinmy.weixin4j.token.TokenCreator; -import com.foxinmy.weixin4j.token.TokenHolder; - -/** - * 微信企业号token创建(永久授权码) - * - * @className WeixinTokenSuiteCreator - * @author jy - * @date 2015年6月17日 - * @since JDK 1.6 - * @see 获取企业号access_token - * @see com.foxinmy.weixin4j.model.Token - */ -public class WeixinTokenSuiteCreator implements TokenCreator { - - private final WeixinRequestExecutor weixinExecutor; - private final SuitePerCodeHolder perCodeHolder; - private final TokenHolder suiteTokenHolder; - - /** - * - * @param perCodeHolder - * 第三方套件永久授权码 - * @param suiteTokenHolder - * 第三方套件凭证token - */ - public WeixinTokenSuiteCreator(SuitePerCodeHolder perCodeHolder, - TokenHolder suiteTokenHolder) { - this.perCodeHolder = perCodeHolder; - this.suiteTokenHolder = suiteTokenHolder; - this.weixinExecutor = new WeixinRequestExecutor(); - } - - @Override - public String getCacheKey() { - return String.format("weixin4j_qy_token_suite_%s:%s", - perCodeHolder.getSuiteId(), perCodeHolder.getAuthCorpId() - - ); - } - - @Override - public Token createToken() throws WeixinException { - JSONObject obj = new JSONObject(); - obj.put("suite_id", perCodeHolder.getSuiteId()); - obj.put("auth_corpid", perCodeHolder.getAuthCorpId()); - obj.put("permanent_code", perCodeHolder.getPermanentCode()); - WeixinResponse response = weixinExecutor.post( - String.format(URLConsts.TOKEN_SUITE_URL, - suiteTokenHolder.getAccessToken()), obj.toJSONString()); - obj = response.getAsJson(); - Token token = new Token(obj.getString("access_token")); - token.setExpiresIn(obj.getIntValue("expires_in")); - token.setCreateTime(System.currentTimeMillis()); - token.setOriginalResult(response.getAsString()); - return token; - } -} +package com.foxinmy.weixin4j.qy.suite; + +import com.alibaba.fastjson.JSONObject; +import com.foxinmy.weixin4j.exception.WeixinException; +import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor; +import com.foxinmy.weixin4j.http.weixin.WeixinResponse; +import com.foxinmy.weixin4j.model.Token; +import com.foxinmy.weixin4j.qy.type.URLConsts; +import com.foxinmy.weixin4j.token.TokenCreator; +import com.foxinmy.weixin4j.token.TokenHolder; + +/** + * 微信企业号token创建(永久授权码) + * + * @className WeixinTokenSuiteCreator + * @author jy + * @date 2015年6月17日 + * @since JDK 1.6 + * @see 获取企业号access_token + * @see com.foxinmy.weixin4j.model.Token + */ +public class WeixinTokenSuiteCreator implements TokenCreator { + + private final WeixinRequestExecutor weixinExecutor; + private final SuitePerCodeHolder perCodeHolder; + private final TokenHolder suiteTokenHolder; + + /** + * + * @param perCodeHolder + * 第三方套件永久授权码 + * @param suiteTokenHolder + * 第三方套件凭证token + */ + public WeixinTokenSuiteCreator(SuitePerCodeHolder perCodeHolder, + TokenHolder suiteTokenHolder) { + this.perCodeHolder = perCodeHolder; + this.suiteTokenHolder = suiteTokenHolder; + this.weixinExecutor = new WeixinRequestExecutor(); + } + + @Override + public String getCacheKey() { + return String.format("weixin4j_qy_token_suite_%s_%s", + perCodeHolder.getSuiteId(), perCodeHolder.getAuthCorpId() + + ); + } + + @Override + public Token createToken() throws WeixinException { + JSONObject obj = new JSONObject(); + obj.put("suite_id", perCodeHolder.getSuiteId()); + obj.put("auth_corpid", perCodeHolder.getAuthCorpId()); + obj.put("permanent_code", perCodeHolder.getPermanentCode()); + WeixinResponse response = weixinExecutor.post( + String.format(URLConsts.TOKEN_SUITE_URL, + suiteTokenHolder.getAccessToken()), obj.toJSONString()); + obj = response.getAsJson(); + Token token = new Token(obj.getString("access_token")); + token.setExpiresIn(obj.getIntValue("expires_in")); + token.setCreateTime(System.currentTimeMillis()); + token.setOriginalResult(response.getAsString()); + return token; + } +} diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTicketCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTicketCreator.java index beb4b69b..50838a1d 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTicketCreator.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTicketCreator.java @@ -1,70 +1,67 @@ -package com.foxinmy.weixin4j.qy.token; - -import com.alibaba.fastjson.JSONObject; -import com.foxinmy.weixin4j.exception.WeixinException; -import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor; -import com.foxinmy.weixin4j.http.weixin.WeixinResponse; -import com.foxinmy.weixin4j.model.Token; -import com.foxinmy.weixin4j.qy.type.URLConsts; -import com.foxinmy.weixin4j.token.TokenCreator; -import com.foxinmy.weixin4j.token.TokenHolder; -import com.foxinmy.weixin4j.type.TicketType; - -/** - * 微信企业号TICKET创建(包括jsticket、其它JSSDK所需的ticket的创建 - * - * @className WeixinTicketCreator - * @author jy - * @date 2015年12月25日 - * @since JDK 1.6 JSTICKET - */ -public class WeixinTicketCreator implements TokenCreator { - - private final String corpid; - private final TicketType ticketType; - private final TokenHolder weixinTokenHolder; - private final WeixinRequestExecutor weixinExecutor; - - /** - * @param corpid - * 企业号ID - * @param ticketType - * 票据类型 - * @param weixinTokenHolder - * 企业号的的access_token - */ - public WeixinTicketCreator(String corpid, TicketType ticketType, - TokenHolder weixinTokenHolder) { - this.corpid = corpid; - this.ticketType = ticketType; - this.weixinTokenHolder = weixinTokenHolder; - this.weixinExecutor = new WeixinRequestExecutor(); - } - - @Override - public String getCacheKey() { - return String.format("weixin4j_qy_ticket_%s_%s", corpid, ticketType.name()); - } - - @Override - public Token createToken() throws WeixinException { - WeixinResponse response = null; - if (ticketType == TicketType.jsapi) { - response = weixinExecutor.get(String.format( - URLConsts.JS_TICKET_URL, weixinTokenHolder.getToken() - .getAccessToken())); - } else { - response = weixinExecutor.get(String.format(URLConsts.TICKET_URL, - weixinTokenHolder.getToken().getAccessToken(), - ticketType.name())); - } - JSONObject result = response.getAsJson(); - Token token = new Token(result.getString("ticket")); - token.setExpiresIn(result.getIntValue("expires_in")); - token.setCreateTime(System.currentTimeMillis()); - token.setOriginalResult(response.getAsString()); - return token; - } -} +package com.foxinmy.weixin4j.qy.token; + +import com.alibaba.fastjson.JSONObject; +import com.foxinmy.weixin4j.exception.WeixinException; +import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor; +import com.foxinmy.weixin4j.http.weixin.WeixinResponse; +import com.foxinmy.weixin4j.model.Token; +import com.foxinmy.weixin4j.qy.type.URLConsts; +import com.foxinmy.weixin4j.token.TokenCreator; +import com.foxinmy.weixin4j.token.TokenHolder; +import com.foxinmy.weixin4j.type.TicketType; + +/** + * 微信企业号TICKET创建(包括jsticket、其它JSSDK所需的ticket的创建 + * + * @className WeixinTicketCreator + * @author jy + * @date 2015年12月25日 + * @since JDK 1.6 JSTICKET + */ +public class WeixinTicketCreator implements TokenCreator { + + private final String corpid; + private final TicketType ticketType; + private final TokenHolder weixinTokenHolder; + private final WeixinRequestExecutor weixinExecutor; + + /** + * @param corpid + * 企业号ID + * @param ticketType + * 票据类型 + * @param weixinTokenHolder + * 企业号的的access_token + */ + public WeixinTicketCreator(String corpid, TicketType ticketType, TokenHolder weixinTokenHolder) { + this.corpid = corpid; + this.ticketType = ticketType; + this.weixinTokenHolder = weixinTokenHolder; + this.weixinExecutor = new WeixinRequestExecutor(); + } + + @Override + public String getCacheKey() { + return String.format("weixin4j_qy_ticket_%s_%s", ticketType.name(), corpid); + } + + @Override + public Token createToken() throws WeixinException { + WeixinResponse response = null; + if (ticketType == TicketType.jsapi) { + response = weixinExecutor + .get(String.format(URLConsts.JS_TICKET_URL, weixinTokenHolder.getToken().getAccessToken())); + } else { + response = weixinExecutor.get(String.format(URLConsts.TICKET_URL, + weixinTokenHolder.getToken().getAccessToken(), ticketType.name())); + } + JSONObject result = response.getAsJson(); + Token token = new Token(result.getString("ticket")); + token.setExpiresIn(result.getIntValue("expires_in")); + token.setCreateTime(System.currentTimeMillis()); + token.setOriginalResult(response.getAsString()); + return token; + } +}