From 980ad0b7bf312707a75f1361feb8c4acdddf6265 Mon Sep 17 00:00:00 2001 From: YuJian Date: Mon, 11 Jan 2016 20:04:27 +0800 Subject: [PATCH] =?UTF-8?q?WxMpInMemoryConfigStorage=E6=96=B0=E5=A2=9Ecard?= =?UTF-8?q?ApiTicket=E7=9A=84=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpConfigStorage.java | 15 +++++++++++ .../mp/api/WxMpInMemoryConfigStorage.java | 26 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpConfigStorage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpConfigStorage.java index 09d90d64..14cc03bf 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpConfigStorage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpConfigStorage.java @@ -50,6 +50,21 @@ public interface WxMpConfigStorage { */ public void updateJsapiTicket(String jsapiTicket, int expiresInSeconds); + public String getCardApiTicket(); + + public boolean isCardApiTicketExpired(); + + /** + * 强制将卡券api ticket过期掉 + */ + public void expireCardApiTicket(); + + /** + * 应该是线程安全的 + * @param cardApiTicket + */ + public void updateCardApiTicket(String cardApiTicket, int expiresInSeconds); + public String getAppId(); public String getSecret(); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java index e0c7aaa3..9eacbe01 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java @@ -32,6 +32,9 @@ public class WxMpInMemoryConfigStorage implements WxMpConfigStorage { protected volatile String jsapiTicket; protected volatile long jsapiTicketExpiresTime; + protected volatile String cardApiTicket; + protected volatile long cardApiTicketExpiresTime; + /** * 临时文件目录 */ @@ -90,6 +93,27 @@ public class WxMpInMemoryConfigStorage implements WxMpConfigStorage { this.jsapiTicketExpiresTime = 0; } + /** + * 卡券api_ticket + */ + public String getCardApiTicket() { + return cardApiTicket; + } + + public boolean isCardApiTicketExpired() { + return System.currentTimeMillis() > this.cardApiTicketExpiresTime; + } + + public synchronized void updateCardApiTicket(String cardApiTicket, int expiresInSeconds) { + this.cardApiTicket = cardApiTicket; + // 预留200秒的时间 + this.cardApiTicketExpiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000l; + } + + public void expireCardApiTicket() { + this.cardApiTicketExpiresTime = 0; + } + public String getAppId() { return this.appId; } @@ -192,6 +216,8 @@ public class WxMpInMemoryConfigStorage implements WxMpConfigStorage { ", http_proxy_password='" + http_proxy_password + '\'' + ", jsapiTicket='" + jsapiTicket + '\'' + ", jsapiTicketExpiresTime='" + jsapiTicketExpiresTime + '\'' + + ", cardApiTicket='" + cardApiTicket + '\'' + + ", cardApiTicketExpiresTime='" + cardApiTicketExpiresTime + '\'' + ", tmpDirFile='" + tmpDirFile + '\'' + '}'; }