Browse Source

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

master
Binary Wang 6 years ago
parent
commit
c590e54c07
2 changed files with 68 additions and 9 deletions
  1. +8
    -5
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaConfig.java
  2. +60
    -4
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java

+ 8
- 5
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaConfig.java View File

@@ -1,10 +1,10 @@
package cn.binarywang.wx.miniapp.config; package cn.binarywang.wx.miniapp.config;


import java.util.concurrent.locks.Lock;

import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.bean.WxAccessToken;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; 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); void updateJsapiTicket(String jsapiTicket, int expiresInSeconds);


/**
* 卡券api_ticket.
*/
String getCardApiTicket(); String getCardApiTicket();


Lock getCardApiTicketLock(); Lock getCardApiTicketLock();
@@ -64,14 +67,14 @@ public interface WxMaConfig {
boolean isCardApiTicketExpired(); boolean isCardApiTicketExpired();


/** /**
* 强制将卡券api ticket过期掉
* 强制将卡券api ticket过期掉.
*/ */
void expireCardApiTicket(); void expireCardApiTicket();


/** /**
* 应该是线程安全的
* 应该是线程安全的.
* *
* @param 卡券apiTicket 新的卡券api ticket值
* @param apiTicket 新的卡券api ticket值
* @param expiresInSeconds 过期时间,以秒为单位 * @param expiresInSeconds 过期时间,以秒为单位
*/ */
void updateCardApiTicket(String apiTicket, int expiresInSeconds); void updateCardApiTicket(String apiTicket, int expiresInSeconds);


+ 60
- 4
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java View File

@@ -325,26 +325,85 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {


@Override @Override
public String getTicket(TicketType type) { 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; return null;
} }


@Override @Override
public Lock getTicketLock(TicketType type) { public Lock getTicketLock(TicketType type) {
switch (type) {
case JSAPI: {
return this.jsapiTicketLock;
}
case WX_CARD: {
return this.cardApiTicketLock;
}
default: {
// do nothing
}
}
return null; return null;
} }


@Override @Override
public boolean isTicketExpired(TicketType type) { 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; return false;
} }


@Override @Override
public void expireTicket(TicketType type) { public void expireTicket(TicketType type) {

switch (type) {
case JSAPI: {
wxOpenConfigStorage.expireJsapiTicket(appId);
break;
}
case WX_CARD: {
wxOpenConfigStorage.expireCardApiTicket(appId);
break;
}
default: {
// do nothing
}
}
} }


@Override @Override
public void updateTicket(TicketType type, String ticket, int expiresInSeconds) { 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); wxOpenConfigStorage.expireJsapiTicket(appId);
} }


/**
* 卡券api_ticket
*/
@Override @Override
public String getCardApiTicket() { public String getCardApiTicket() {
return wxOpenConfigStorage.getCardApiTicket(appId); return wxOpenConfigStorage.getCardApiTicket(appId);


Loading…
Cancel
Save