From 0a35cf9d9b083d684a9aca5b233ca60112069e39 Mon Sep 17 00:00:00 2001 From: jinyu Date: Sat, 9 Apr 2016 00:56:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/foxinmy/weixin4j/model/Token.java | 9 ++++--- .../weixin4j/token/RedisTokenStorager.java | 24 ++++++++++++------- .../foxinmy/weixin4j/base/test/PayTest.java | 9 ++++--- .../mp/token/WeixinTicketCreator.java | 1 - .../weixin4j/mp/token/WeixinTokenCreator.java | 1 - .../weixin4j/mp/test/XmlstreamTest.java | 3 +-- .../com/foxinmy/weixin4j/qy/api/SuiteApi.java | 1 - .../qy/suite/WeixinSuitePreCodeCreator.java | 1 - .../qy/suite/WeixinSuiteTokenCreator.java | 1 - .../qy/suite/WeixinTokenSuiteCreator.java | 1 - .../qy/token/WeixinProviderTokenCreator.java | 1 - .../qy/token/WeixinTicketCreator.java | 1 - .../weixin4j/qy/token/WeixinTokenCreator.java | 1 - 13 files changed, 26 insertions(+), 28 deletions(-) diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/Token.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/Token.java index dea3e2d5..e87e365c 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/Token.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/Token.java @@ -32,20 +32,23 @@ public class Token implements Serializable { @JSONField(name = "expires_in") private int expiresIn; /** - * token创建的时间 + * token创建的时间,单位:毫秒 */ + @JSONField(name = "create_time") private long createTime; /** * 请求返回的原始结果 */ + @JSONField(name = "original_result") private String originalResult; - public Token() { - this.createTime = System.currentTimeMillis() / 1000l; + protected Token() { + // jaxb required } public Token(String accessToken) { this.accessToken = accessToken; + this.createTime = System.currentTimeMillis(); } public String getAccessToken() { diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/RedisTokenStorager.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/RedisTokenStorager.java index 659855bd..30b4596e 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/RedisTokenStorager.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/RedisTokenStorager.java @@ -78,7 +78,8 @@ public class RedisTokenStorager implements TokenStorager { jedis = jedisPool.getResource(); jedis.hmset(cacheKey, token2map(token)); if (token.getExpiresIn() > 0) { - jedis.expire(cacheKey, token.getExpiresIn() - (int)(CUTMS / 1000l)); + jedis.expire(cacheKey, token.getExpiresIn() + - (int) (CUTMS / 1000l)); } } finally { if (jedis != null) { @@ -87,20 +88,25 @@ public class RedisTokenStorager implements TokenStorager { } } + private final static String ACCESSTOKEN_KEY = "accessToken"; + private final static String EXPIRESIN_KEY = "expiresIn"; + private final static String CREATETIME_KEY = "createTime"; + private final static String ORIGINAL_KEY = "originalResult"; + protected Map token2map(Token token) { Map map = new HashMap(); - map.put("accessToken", token.getAccessToken()); - map.put("originalResult", token.getOriginalResult()); - map.put("createTime", Long.toString(token.getCreateTime())); - map.put("expiresIn", Integer.toString(token.getExpiresIn())); + map.put(ACCESSTOKEN_KEY, token.getAccessToken()); + map.put(EXPIRESIN_KEY, Integer.toString(token.getExpiresIn())); + map.put(CREATETIME_KEY, Long.toString(token.getCreateTime())); + map.put(ORIGINAL_KEY, token.getOriginalResult()); return map; } protected Token map2token(Map map) { - Token token = new Token(map.get("accessToken")); - token.setCreateTime(Long.parseLong(map.get("createTime"))); - token.setExpiresIn(Integer.parseInt(map.get("expiresIn"))); - token.setOriginalResult(map.get("originalResult")); + Token token = new Token(map.get(ACCESSTOKEN_KEY)); + token.setExpiresIn(Integer.parseInt(map.get(EXPIRESIN_KEY))); + token.setCreateTime(Long.parseLong(map.get(CREATETIME_KEY))); + token.setOriginalResult(map.get(ORIGINAL_KEY)); return token; } diff --git a/weixin4j-base/src/test/java/com/foxinmy/weixin4j/base/test/PayTest.java b/weixin4j-base/src/test/java/com/foxinmy/weixin4j/base/test/PayTest.java index f6efbd5d..0b5db16a 100644 --- a/weixin4j-base/src/test/java/com/foxinmy/weixin4j/base/test/PayTest.java +++ b/weixin4j-base/src/test/java/com/foxinmy/weixin4j/base/test/PayTest.java @@ -42,7 +42,7 @@ public class PayTest { protected final static WeixinPayProxy PAY; static { - ACCOUNT = new WeixinPayAccount("appid", "paySignKey", "mchid"); + ACCOUNT = new WeixinPayAccount("wx4ab8f8de58159a57", "GATFzDwbQdbbci3QEQxX2rUBvwTrsMiZ", "1290664601"); SIGNATURE = new WeixinPaymentSignature(ACCOUNT.getPaySignKey()); PAY = new WeixinPayProxy(new Weixin4jSettings(ACCOUNT)); } @@ -81,10 +81,9 @@ public class PayTest { @Test public void downbill() throws WeixinException { Calendar c = Calendar.getInstance(); - System.err.println(c.getTime()); - c.set(Calendar.YEAR, 2015); - c.set(Calendar.MONTH, 2); - c.set(Calendar.DAY_OF_MONTH, 24); + c.set(Calendar.YEAR, 2016); + c.set(Calendar.MONTH, 3); + c.set(Calendar.DAY_OF_MONTH, 4); System.err.println(c.getTime()); File file = PAY.downloadBill(c.getTime(), null); System.err.println(file); 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 59548205..48ef78fe 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 @@ -57,7 +57,6 @@ public class WeixinTicketCreator implements TokenCreator { 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; } diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTokenCreator.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTokenCreator.java index 78ad77bc..a3082717 100644 --- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTokenCreator.java +++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTokenCreator.java @@ -50,7 +50,6 @@ public class WeixinTokenCreator implements TokenCreator { WeixinResponse response = weixinExecutor.get(tokenUrl); Token token = response.getAsObject(new TypeReference() { }); - token.setCreateTime(System.currentTimeMillis()); token.setOriginalResult(response.getAsString()); return token; } diff --git a/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/XmlstreamTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/XmlstreamTest.java index 15f4078c..84228a96 100644 --- a/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/XmlstreamTest.java +++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/XmlstreamTest.java @@ -14,8 +14,7 @@ import com.foxinmy.weixin4j.xml.XmlStream; public class XmlstreamTest { public static void object2xmlWithRootElement() { - Token token = new Token(); - token.setAccessToken("accessToken"); + Token token = new Token("accessToken"); token.setExpiresIn(12); token.setCreateTime(13l); String content = XmlStream.toXML(token); diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java index 92d24c3f..cbf78702 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java @@ -167,7 +167,6 @@ public class SuiteApi extends QyApi { suitePerCodeHolder, suiteTokenHolder); Token token = new Token(obj.getString("access_token")); token.setExpiresIn(obj.getIntValue("expires_in")); - token.setCreateTime(System.currentTimeMillis()); suiteTicketHolder.getTokenStorager().caching( tokenCreator.getCacheKey(), token); // 缓存微信企业号永久授权码 diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuitePreCodeCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuitePreCodeCreator.java index 537e6641..33b4dbd1 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuitePreCodeCreator.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuitePreCodeCreator.java @@ -54,7 +54,6 @@ public class WeixinSuitePreCodeCreator implements TokenCreator { JSONObject result = response.getAsJson(); Token token = new Token(result.getString("pre_auth_code")); token.setExpiresIn(result.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/suite/WeixinSuiteTokenCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java index 209f27a1..5bb38145 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java @@ -50,7 +50,6 @@ public class WeixinSuiteTokenCreator implements TokenCreator { obj = response.getAsJson(); Token token = new Token(obj.getString("suite_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/suite/WeixinTokenSuiteCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java index 4eab20c3..3c23b65a 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 @@ -60,7 +60,6 @@ public class WeixinTokenSuiteCreator implements TokenCreator { 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/WeixinProviderTokenCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinProviderTokenCreator.java index 840a940a..508b3298 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinProviderTokenCreator.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinProviderTokenCreator.java @@ -53,7 +53,6 @@ public class WeixinProviderTokenCreator implements TokenCreator { obj = response.getAsJson(); Token token = new Token(obj.getString("provider_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 ef3c1c04..053f93eb 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 @@ -60,7 +60,6 @@ public class WeixinTicketCreator implements TokenCreator { 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; } diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTokenCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTokenCreator.java index b2f0deff..03a4d768 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTokenCreator.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTokenCreator.java @@ -50,7 +50,6 @@ public class WeixinTokenCreator implements TokenCreator { WeixinResponse response = weixinExecutor.get(tokenUrl); Token token = response.getAsObject(new TypeReference() { }); - token.setCreateTime(System.currentTimeMillis()); token.setOriginalResult(response.getAsString()); return token; }