Skip to content

Commit fddb2f7

Browse files
authored
🆕 #2345【企业微信】增加创建调用wx.agentConfig时所需要的签名方法
1 parent a5c141f commit fddb2f7

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import me.chanjar.weixin.common.util.http.MediaUploadRequestExecutor;
99
import me.chanjar.weixin.common.util.http.RequestExecutor;
1010
import me.chanjar.weixin.common.util.http.RequestHttp;
11+
import me.chanjar.weixin.cp.bean.WxCpAgentJsapiSignature;
1112
import me.chanjar.weixin.cp.bean.WxCpMaJsCode2SessionResult;
1213
import me.chanjar.weixin.cp.bean.WxCpProviderToken;
1314
import me.chanjar.weixin.cp.config.WxCpConfigStorage;
@@ -124,6 +125,18 @@ public interface WxCpService extends WxService {
124125
*/
125126
WxJsapiSignature createJsapiSignature(String url) throws WxErrorException;
126127

128+
/**
129+
* <pre>
130+
* 创建调用wx.agentConfig时所需要的签名
131+
*
132+
* 详情请见:https://open.work.weixin.qq.com/api/doc/90000/90136/94313
133+
* </pre>
134+
*
135+
* @param url url
136+
* @return the agent jsapi signature
137+
* @throws WxErrorException
138+
*/
139+
WxCpAgentJsapiSignature createAgentJsapiSignature(String url) throws WxErrorException;
127140

128141
/**
129142
* 小程序登录凭证校验

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/BaseWxCpServiceImpl.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import me.chanjar.weixin.common.util.http.*;
2121
import me.chanjar.weixin.common.util.json.GsonParser;
2222
import me.chanjar.weixin.cp.api.*;
23+
import me.chanjar.weixin.cp.bean.WxCpAgentJsapiSignature;
2324
import me.chanjar.weixin.cp.bean.WxCpMaJsCode2SessionResult;
2425
import me.chanjar.weixin.cp.bean.WxCpProviderToken;
2526
import me.chanjar.weixin.cp.config.WxCpConfigStorage;
@@ -171,6 +172,30 @@ public WxJsapiSignature createJsapiSignature(String url) throws WxErrorException
171172
return jsapiSignature;
172173
}
173174

175+
@Override
176+
public WxCpAgentJsapiSignature createAgentJsapiSignature(String url) throws WxErrorException {
177+
long timestamp = System.currentTimeMillis() / 1000;
178+
String noncestr = RandomUtils.getRandomStr();
179+
String jsapiTicket = getAgentJsapiTicket(false);
180+
String signature = SHA1.genWithAmple(
181+
"jsapi_ticket=" + jsapiTicket,
182+
"noncestr=" + noncestr,
183+
"timestamp=" + timestamp,
184+
"url=" + url
185+
);
186+
187+
WxCpAgentJsapiSignature jsapiSignature = new WxCpAgentJsapiSignature();
188+
jsapiSignature.setTimestamp(timestamp);
189+
jsapiSignature.setNonceStr(noncestr);
190+
jsapiSignature.setUrl(url);
191+
jsapiSignature.setSignature(signature);
192+
193+
jsapiSignature.setCorpid(this.configStorage.getCorpId());
194+
jsapiSignature.setAgentid(this.configStorage.getAgentId());
195+
196+
return jsapiSignature;
197+
}
198+
174199
@Override
175200
public WxCpMaJsCode2SessionResult jsCode2Session(String jsCode) throws WxErrorException {
176201
Map<String, String> params = new HashMap<>(2);
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package me.chanjar.weixin.cp.bean;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
import java.io.Serializable;
9+
10+
/**
11+
* 调用wx.agentConfig时所需要的签名信息
12+
*/
13+
@Data
14+
@Builder
15+
@NoArgsConstructor
16+
@AllArgsConstructor
17+
public class WxCpAgentJsapiSignature implements Serializable {
18+
private static final long serialVersionUID = 2650119900835832545L;
19+
20+
private String url;
21+
22+
private String corpid;
23+
24+
private Integer agentid;
25+
26+
private long timestamp;
27+
28+
private String nonceStr;
29+
30+
private String signature;
31+
}

0 commit comments

Comments
 (0)