完善ticket相关代码,完成#844遗留问题

This commit is contained in:
Binary Wang 2018-11-29 20:46:36 +08:00
parent 73945bfb1a
commit c590e54c07
2 changed files with 68 additions and 9 deletions

View File

@ -1,10 +1,10 @@
package cn.binarywang.wx.miniapp.config;
import java.util.concurrent.locks.Lock;
import me.chanjar.weixin.common.bean.WxAccessToken;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
import java.util.concurrent.locks.Lock;
/**
* 小程序配置
*
@ -57,6 +57,9 @@ public interface WxMaConfig {
*/
void updateJsapiTicket(String jsapiTicket, int expiresInSeconds);
/**
* 卡券api_ticket.
*/
String getCardApiTicket();
Lock getCardApiTicketLock();
@ -64,14 +67,14 @@ public interface WxMaConfig {
boolean isCardApiTicketExpired();
/**
* 强制将卡券api ticket过期掉
* 强制将卡券api ticket过期掉.
*/
void expireCardApiTicket();
/**
* 应该是线程安全的
* 应该是线程安全的.
*
* @param 卡券apiTicket 新的卡券api ticket值
* @param apiTicket 新的卡券api ticket值
* @param expiresInSeconds 过期时间以秒为单位
*/
void updateCardApiTicket(String apiTicket, int expiresInSeconds);

View File

@ -325,26 +325,85 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
@Override
public String getTicket(TicketType type) {
switch (type) {
case JSAPI: {
return wxOpenConfigStorage.getJsapiTicket(appId);
}
case WX_CARD: {
return wxOpenConfigStorage.getCardApiTicket(appId);
}
default: {
// do nothing
}
}
return null;
}
@Override
public Lock getTicketLock(TicketType type) {
switch (type) {
case JSAPI: {
return this.jsapiTicketLock;
}
case WX_CARD: {
return this.cardApiTicketLock;
}
default: {
// do nothing
}
}
return null;
}
@Override
public boolean isTicketExpired(TicketType type) {
switch (type) {
case JSAPI: {
return wxOpenConfigStorage.isJsapiTicketExpired(appId);
}
case WX_CARD: {
return wxOpenConfigStorage.isCardApiTicketExpired(appId);
}
default: {
// do nothing
}
}
return false;
}
@Override
public void expireTicket(TicketType type) {
switch (type) {
case JSAPI: {
wxOpenConfigStorage.expireJsapiTicket(appId);
break;
}
case WX_CARD: {
wxOpenConfigStorage.expireCardApiTicket(appId);
break;
}
default: {
// do nothing
}
}
}
@Override
public void updateTicket(TicketType type, String ticket, int expiresInSeconds) {
switch (type) {
case JSAPI: {
wxOpenConfigStorage.updateJsapiTicket(appId, ticket, expiresInSeconds);
break;
}
case WX_CARD: {
wxOpenConfigStorage.updateCardApiTicket(appId, ticket, expiresInSeconds);
break;
}
default: {
// do nothing
}
}
}
@ -383,9 +442,6 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
wxOpenConfigStorage.expireJsapiTicket(appId);
}
/**
* 卡券api_ticket
*/
@Override
public String getCardApiTicket() {
return wxOpenConfigStorage.getCardApiTicket(appId);