Skip to content

Commit 5b49c63

Browse files
committed
issue #91 添加企业号JS_API的支持
1 parent 6d383fa commit 5b49c63

18 files changed

+232
-42
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/WxErrorExceptionHandler.java renamed to weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxErrorExceptionHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.chanjar.weixin.common.util;
1+
package me.chanjar.weixin.common.api;
22

33
import me.chanjar.weixin.common.exception.WxErrorException;
44

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/WxMessageDuplicateChecker.java renamed to weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxMessageDuplicateChecker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.chanjar.weixin.common.util;
1+
package me.chanjar.weixin.common.api;
22

33
/**
44
* <pre>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.chanjar.weixin.common.util;
1+
package me.chanjar.weixin.common.api;
22

33
import java.util.Map;
44
import java.util.concurrent.ConcurrentHashMap;

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpJsapiSignature.java renamed to weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxJsapiSignature.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package me.chanjar.weixin.mp.bean.result;
1+
package me.chanjar.weixin.common.bean;
22

33
/**
44
* jspai signature
55
*/
6-
public class WxMpJsapiSignature {
6+
public class WxJsapiSignature {
77

88
private String noncestr;
99

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/LogExceptionHandler.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.chanjar.weixin.common.util;
22

3+
import me.chanjar.weixin.common.api.WxErrorExceptionHandler;
34
import me.chanjar.weixin.common.exception.WxErrorException;
45
import org.slf4j.Logger;
56
import org.slf4j.LoggerFactory;
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package me.chanjar.weixin.common.util;
2+
3+
public class RandomUtils {
4+
5+
private static final String RANDOM_STR = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
6+
7+
private static final java.util.Random RANDOM = new java.util.Random();
8+
9+
public static String getRandomStr() {
10+
StringBuilder sb = new StringBuilder();
11+
for (int i = 0; i < 16; i++) {
12+
sb.append(RANDOM_STR.charAt(RANDOM.nextInt(RANDOM_STR.length())));
13+
}
14+
return sb.toString();
15+
}
16+
17+
}

weixin-java-common/src/test/java/me/chanjar/weixin/common/util/WxMessageInMemoryDuplicateCheckerTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.chanjar.weixin.common.util;
22

3+
import me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker;
34
import org.testng.Assert;
45
import org.testng.annotations.Test;
56

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpConfigStorage.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@ public interface WxCpConfigStorage {
2222

2323
public void updateAccessToken(String accessToken, int expiresIn);
2424

25+
public String getJsapiTicket();
26+
27+
public boolean isJsapiTicketExpired();
28+
29+
/**
30+
* 强制将jsapi ticket过期掉
31+
*/
32+
public void expireJsapiTicket();
33+
34+
/**
35+
* 应该是线程安全的
36+
* @param jsapiTicket
37+
*/
38+
public void updateJsapiTicket(String jsapiTicket, int expiresInSeconds);
2539

2640
public String getCorpId();
2741

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpInMemoryConfigStorage.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public class WxCpInMemoryConfigStorage implements WxCpConfigStorage {
2525
protected volatile String http_proxy_username;
2626
protected volatile String http_proxy_password;
2727

28+
protected volatile String jsapiTicket;
29+
protected volatile long jsapiTicketExpiresTime;
30+
2831
public String getAccessToken() {
2932
return this.accessToken;
3033
}
@@ -46,6 +49,37 @@ public synchronized void updateAccessToken(String accessToken, int expiresInSeco
4649
this.expiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000l;
4750
}
4851

52+
@Override
53+
public String getJsapiTicket() {
54+
return jsapiTicket;
55+
}
56+
57+
public void setJsapiTicket(String jsapiTicket) {
58+
this.jsapiTicket = jsapiTicket;
59+
}
60+
61+
public long getJsapiTicketExpiresTime() {
62+
return jsapiTicketExpiresTime;
63+
}
64+
65+
public void setJsapiTicketExpiresTime(long jsapiTicketExpiresTime) {
66+
this.jsapiTicketExpiresTime = jsapiTicketExpiresTime;
67+
}
68+
69+
public boolean isJsapiTicketExpired() {
70+
return System.currentTimeMillis() > this.jsapiTicketExpiresTime;
71+
}
72+
73+
public synchronized void updateJsapiTicket(String jsapiTicket, int expiresInSeconds) {
74+
this.jsapiTicket = jsapiTicket;
75+
// 预留200秒的时间
76+
this.jsapiTicketExpiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000l;
77+
}
78+
79+
public void expireJsapiTicket() {
80+
this.jsapiTicketExpiresTime = 0;
81+
}
82+
4983
public String getCorpId() {
5084
return this.corpId;
5185
}
@@ -153,6 +187,8 @@ public String toString() {
153187
", http_proxy_port=" + http_proxy_port +
154188
", http_proxy_username='" + http_proxy_username + '\'' +
155189
", http_proxy_password='" + http_proxy_password + '\'' +
190+
", jsapiTicket='" + jsapiTicket + '\'' +
191+
", jsapiTicketExpiresTime='" + jsapiTicketExpiresTime + '\'' +
156192
'}';
157193
}
158194

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import me.chanjar.weixin.common.session.StandardSessionManager;
66
import me.chanjar.weixin.common.session.WxSessionManager;
77
import me.chanjar.weixin.common.util.LogExceptionHandler;
8-
import me.chanjar.weixin.common.util.WxErrorExceptionHandler;
9-
import me.chanjar.weixin.common.util.WxMessageDuplicateChecker;
10-
import me.chanjar.weixin.common.util.WxMessageInMemoryDuplicateChecker;
8+
import me.chanjar.weixin.common.api.WxErrorExceptionHandler;
9+
import me.chanjar.weixin.common.api.WxMessageDuplicateChecker;
10+
import me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker;
1111
import me.chanjar.weixin.cp.bean.WxCpXmlMessage;
1212
import me.chanjar.weixin.cp.bean.WxCpXmlOutMessage;
1313
import org.slf4j.Logger;
@@ -87,8 +87,8 @@ public void setExecutorService(ExecutorService executorService) {
8787

8888
/**
8989
* <pre>
90-
* 设置自定义的 {@link me.chanjar.weixin.common.util.WxMessageDuplicateChecker}
91-
* 如果不调用该方法,默认使用 {@link me.chanjar.weixin.common.util.WxMessageInMemoryDuplicateChecker}
90+
* 设置自定义的 {@link me.chanjar.weixin.common.api.WxMessageDuplicateChecker}
91+
* 如果不调用该方法,默认使用 {@link me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker}
9292
* </pre>
9393
* @param messageDuplicateChecker
9494
*/
@@ -109,7 +109,7 @@ public void setSessionManager(WxSessionManager sessionManager) {
109109

110110
/**
111111
* <pre>
112-
* 设置自定义的{@link me.chanjar.weixin.common.util.WxErrorExceptionHandler}
112+
* 设置自定义的{@link me.chanjar.weixin.common.api.WxErrorExceptionHandler}
113113
* 如果不调用该方法,默认使用 {@link me.chanjar.weixin.common.util.LogExceptionHandler}
114114
* </pre>
115115
* @param exceptionHandler

0 commit comments

Comments
 (0)