| @@ -5,8 +5,11 @@ import me.chanjar.weixin.common.exception.WxErrorException; | |||||
| import me.chanjar.weixin.common.util.http.MediaUploadRequestExecutor; | import me.chanjar.weixin.common.util.http.MediaUploadRequestExecutor; | ||||
| import me.chanjar.weixin.common.util.http.RequestExecutor; | import me.chanjar.weixin.common.util.http.RequestExecutor; | ||||
| import me.chanjar.weixin.common.util.http.RequestHttp; | import me.chanjar.weixin.common.util.http.RequestHttp; | ||||
| import me.chanjar.weixin.mp.bean.*; | |||||
| import me.chanjar.weixin.mp.bean.result.*; | |||||
| import me.chanjar.weixin.mp.bean.WxMpSemanticQuery; | |||||
| import me.chanjar.weixin.mp.bean.result.WxMpCurrentAutoReplyInfo; | |||||
| import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; | |||||
| import me.chanjar.weixin.mp.bean.result.WxMpSemanticQueryResult; | |||||
| import me.chanjar.weixin.mp.bean.result.WxMpUser; | |||||
| /** | /** | ||||
| * 微信API的Service | * 微信API的Service | ||||
| @@ -62,6 +65,11 @@ public interface WxMpService { | |||||
| */ | */ | ||||
| String GET_CURRENT_AUTOREPLY_INFO_URL = "https://api.weixin.qq.com/cgi-bin/get_current_autoreply_info"; | String GET_CURRENT_AUTOREPLY_INFO_URL = "https://api.weixin.qq.com/cgi-bin/get_current_autoreply_info"; | ||||
| /** | |||||
| * 公众号调用或第三方平台帮公众号调用对公众号的所有api调用(包括第三方帮其调用)次数进行清零 | |||||
| */ | |||||
| String CLEAR_QUOTA_URL = "https://api.weixin.qq.com/cgi-bin/clear_quota"; | |||||
| /** | /** | ||||
| * <pre> | * <pre> | ||||
| * 验证消息的确来自微信服务器 | * 验证消息的确来自微信服务器 | ||||
| @@ -219,6 +227,18 @@ public interface WxMpService { | |||||
| */ | */ | ||||
| WxMpCurrentAutoReplyInfo getCurrentAutoReplyInfo() throws WxErrorException; | WxMpCurrentAutoReplyInfo getCurrentAutoReplyInfo() throws WxErrorException; | ||||
| /** | |||||
| * <pre> | |||||
| * 公众号调用或第三方平台帮公众号调用对公众号的所有api调用(包括第三方帮其调用)次数进行清零: | |||||
| * HTTP调用:https://api.weixin.qq.com/cgi-bin/clear_quota?access_token=ACCESS_TOKEN | |||||
| * 接口文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433744592 | |||||
| * | |||||
| * </pre> | |||||
| * | |||||
| * @param appid 公众号的APPID | |||||
| */ | |||||
| void clearQuota(String appid) throws WxErrorException; | |||||
| /** | /** | ||||
| * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的GET请求 | * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的GET请求 | ||||
| */ | */ | ||||
| @@ -376,6 +396,7 @@ public interface WxMpService { | |||||
| /** | /** | ||||
| * 返回群发消息相关接口方法的实现类对象,以方便调用其各个接口 | * 返回群发消息相关接口方法的实现类对象,以方便调用其各个接口 | ||||
| * | |||||
| * @return WxMpMassMessageService | * @return WxMpMassMessageService | ||||
| */ | */ | ||||
| WxMpMassMessageService getMassMessageService(); | WxMpMassMessageService getMassMessageService(); | ||||
| @@ -207,6 +207,13 @@ public abstract class WxMpServiceAbstractImpl<H, P> implements WxMpService, Requ | |||||
| return WxMpCurrentAutoReplyInfo.fromJson(this.get(GET_CURRENT_AUTOREPLY_INFO_URL, null)); | return WxMpCurrentAutoReplyInfo.fromJson(this.get(GET_CURRENT_AUTOREPLY_INFO_URL, null)); | ||||
| } | } | ||||
| @Override | |||||
| public void clearQuota(String appid) throws WxErrorException { | |||||
| JsonObject o = new JsonObject(); | |||||
| o.addProperty("appid", appid); | |||||
| this.post(CLEAR_QUOTA_URL, o.toString()); | |||||
| } | |||||
| @Override | @Override | ||||
| public String get(String url, String queryParam) throws WxErrorException { | public String get(String url, String queryParam) throws WxErrorException { | ||||
| return execute(SimpleGetRequestExecutor.create(this), url, queryParam); | return execute(SimpleGetRequestExecutor.create(this), url, queryParam); | ||||
| @@ -15,7 +15,6 @@ import static org.testng.Assert.*; | |||||
| @Test | @Test | ||||
| @Guice(modules = ApiTestModule.class) | @Guice(modules = ApiTestModule.class) | ||||
| public class WxMpServiceImplTest { | public class WxMpServiceImplTest { | ||||
| @Inject | @Inject | ||||
| private WxMpService wxService; | private WxMpService wxService; | ||||
| @@ -28,88 +27,8 @@ public class WxMpServiceImplTest { | |||||
| } | } | ||||
| @Test | @Test | ||||
| public void testCheckSignature() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testGetAccessToken() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testGetAccessTokenBoolean() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testGetJsapiTicket() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testGetJsapiTicketBoolean() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testCreateJsapiSignature() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testCustomMessageSend() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testMassNewsUpload() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testMassVideoUpload() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testMassGroupMessageSend() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testMassOpenIdsMessageSend() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testMassMessagePreview() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testShortUrl() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testSetIndustry() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testGetIndustry() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testSemanticQuery() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testOauth2buildAuthorizationUrl() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| public void testClearQuota() throws WxErrorException { | |||||
| this.wxService.clearQuota(wxService.getWxMpConfigStorage().getAppId()); | |||||
| } | } | ||||
| @Test | @Test | ||||
| @@ -121,44 +40,4 @@ public class WxMpServiceImplTest { | |||||
| System.out.println(qrConnectUrl); | System.out.println(qrConnectUrl); | ||||
| } | } | ||||
| @Test | |||||
| public void testOauth2getAccessToken() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testOauth2refreshAccessToken() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testOauth2getUserInfo() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testOauth2validateAccessToken() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testGetCallbackIP() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testGet() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testPost() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| @Test | |||||
| public void testExecute() { | |||||
| Assert.fail("Not yet implemented"); | |||||
| } | |||||
| } | } | ||||