#672 小程序增加jssdk相关接口实现

This commit is contained in:
Binary Wang
2018-08-05 19:51:41 +08:00
parent 93db3237a6
commit 214e7e58fa
9 changed files with 243 additions and 9 deletions

View File

@@ -38,6 +38,25 @@ public interface WxMaConfig {
*/
void updateAccessToken(String accessToken, int expiresInSeconds);
String getJsapiTicket();
Lock getJsapiTicketLock();
boolean isJsapiTicketExpired();
/**
* 强制将jsapi ticket过期掉
*/
void expireJsapiTicket();
/**
* 应该是线程安全的
*
* @param jsapiTicket 新的jsapi ticket值
* @param expiresInSeconds 过期时间,以秒为单位
*/
void updateJsapiTicket(String jsapiTicket, int expiresInSeconds);
String getAppid();
String getSecret();

View File

@@ -27,7 +27,11 @@ public class WxMaInMemoryConfig implements WxMaConfig {
protected volatile String httpProxyUsername;
protected volatile String httpProxyPassword;
protected volatile String jsapiTicket;
protected volatile long jsapiTicketExpiresTime;
protected Lock accessTokenLock = new ReentrantLock();
protected Lock jsapiTicketLock = new ReentrantLock();
/**
* 临时文件目录
@@ -70,6 +74,33 @@ public class WxMaInMemoryConfig implements WxMaConfig {
this.expiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L;
}
@Override
public String getJsapiTicket() {
return this.jsapiTicket;
}
@Override
public Lock getJsapiTicketLock() {
return this.jsapiTicketLock;
}
@Override
public boolean isJsapiTicketExpired() {
return System.currentTimeMillis() > this.jsapiTicketExpiresTime;
}
@Override
public void expireJsapiTicket() {
this.jsapiTicketExpiresTime = 0;
}
@Override
public void updateJsapiTicket(String jsapiTicket, int expiresInSeconds) {
this.jsapiTicket = jsapiTicket;
// 预留200秒的时间
this.jsapiTicketExpiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L;
}
@Override
public void expireAccessToken() {
this.expiresTime = 0;