Skip to content

Commit 04349ed

Browse files
author
yang ran
committed
binarywang#1720 增加群机器人消息推送接口服务、不需要自动带accessToken的post请求接口
1 parent 23e0b72 commit 04349ed

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

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

+15
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,14 @@ public interface WxCpService {
173173
*/
174174
String post(String url, String postData) throws WxErrorException;
175175

176+
/**
177+
* 当不需要自动带accessToken的时候,可以用这个发起post请求
178+
*
179+
* @param url 接口地址
180+
* @param postData 请求body字符串
181+
*/
182+
String postWithoutToken(String url, String postData) throws WxErrorException;
183+
176184
/**
177185
* <pre>
178186
* Service没有实现某个API的时候,可以用这个,
@@ -328,6 +336,13 @@ public interface WxCpService {
328336

329337
WxCpOaService getOAService();
330338

339+
/**
340+
* 获取群机器人消息推送服务
341+
*
342+
* @return 群机器人消息推送服务
343+
*/
344+
WxCpGroupRobotService getGroupRobotService();
345+
331346
/**
332347
* http请求对象
333348
*/

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

+32
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public abstract class BaseWxCpServiceImpl<H, P> implements WxCpService, RequestH
5151
private WxCpOaService oaService = new WxCpOaServiceImpl(this);
5252
private WxCpTaskCardService taskCardService = new WxCpTaskCardServiceImpl(this);
5353
private WxCpExternalContactService externalContactService = new WxCpExternalContactServiceImpl(this);
54+
private WxCpGroupRobotService groupRobotService = new WxCpGroupRobotServiceImpl(this);
5455

5556
/**
5657
* 全局的是否正在刷新access token的锁.
@@ -217,6 +218,11 @@ public String post(String url, String postData) throws WxErrorException {
217218
return execute(SimplePostRequestExecutor.create(this), url, postData);
218219
}
219220

221+
@Override
222+
public String postWithoutToken(String url, String postData) throws WxErrorException {
223+
return this.executeNormal(SimplePostRequestExecutor.create(this), url, postData);
224+
}
225+
220226
/**
221227
* 向微信端发送请求,在这里执行的策略是当发生access_token过期时才去刷新,然后重新执行请求,而不是全局定时请求.
222228
*/
@@ -296,6 +302,27 @@ protected <T, E> T executeInternal(RequestExecutor<T, E> executor, String uri, E
296302
}
297303
}
298304

305+
/**
306+
* 普通请求,不自动带accessToken
307+
*/
308+
private <T, E> T executeNormal(RequestExecutor<T, E> executor, String uri, E data) throws WxErrorException {
309+
try {
310+
T result = executor.execute(uri, data, WxType.CP);
311+
log.debug("\n【请求地址】: {}\n【请求参数】:{}\n【响应数据】:{}", uri, data, result);
312+
return result;
313+
} catch (WxErrorException e) {
314+
WxError error = e.getError();
315+
if (error.getErrorCode() != 0) {
316+
log.error("\n【请求地址】: {}\n【请求参数】:{}\n【错误信息】:{}", uri, data, error);
317+
throw new WxErrorException(error, e);
318+
}
319+
return null;
320+
} catch (IOException e) {
321+
log.error("\n【请求地址】: {}\n【请求参数】:{}\n【异常信息】:{}", uri, data, e.getMessage());
322+
throw new RuntimeException(e);
323+
}
324+
}
325+
299326
@Override
300327
public void setWxCpConfigStorage(WxCpConfigStorage wxConfigProvider) {
301328
this.configStorage = wxConfigProvider;
@@ -412,6 +439,11 @@ public WxCpOaService getOAService() {
412439
return oaService;
413440
}
414441

442+
@Override
443+
public WxCpGroupRobotService getGroupRobotService() {
444+
return groupRobotService;
445+
}
446+
415447
@Override
416448
public WxCpTaskCardService getTaskCardService() {
417449
return taskCardService;

0 commit comments

Comments
 (0)