优化代码

This commit is contained in:
jinyu 2016-04-09 00:56:36 +08:00
parent 00f2a28203
commit 0a35cf9d9b
13 changed files with 26 additions and 28 deletions

View File

@ -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() {

View File

@ -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<String, String> token2map(Token token) {
Map<String, String> map = new HashMap<String, String>();
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<String, String> 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;
}

View File

@ -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);

View File

@ -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;
}

View File

@ -50,7 +50,6 @@ public class WeixinTokenCreator implements TokenCreator {
WeixinResponse response = weixinExecutor.get(tokenUrl);
Token token = response.getAsObject(new TypeReference<Token>() {
});
token.setCreateTime(System.currentTimeMillis());
token.setOriginalResult(response.getAsString());
return token;
}

View File

@ -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);

View File

@ -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);
// 缓存微信企业号永久授权码

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -50,7 +50,6 @@ public class WeixinTokenCreator implements TokenCreator {
WeixinResponse response = weixinExecutor.get(tokenUrl);
Token token = response.getAsObject(new TypeReference<Token>() {
});
token.setCreateTime(System.currentTimeMillis());
token.setOriginalResult(response.getAsString());
return token;
}