Browse Source

:new: #2206 【开放平台】增加第三方平台启动ticket推送接口

hywr 3 years ago
parent
commit
9e3f256032

+ 12 - 3
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java

@@ -1,10 +1,8 @@
 package me.chanjar.weixin.open.api;
 
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
-import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
-import me.chanjar.weixin.common.bean.result.WxMinishopImageUploadResult;
-import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
+import me.chanjar.weixin.common.bean.result.WxMinishopImageUploadResult;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.api.WxMpService;
 import me.chanjar.weixin.open.bean.WxOpenCreateResult;
@@ -32,6 +30,10 @@ public interface WxOpenComponentService {
    */
   String API_COMPONENT_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/component/api_component_token";
   /**
+   * 启动ticket推送服务
+   */
+  String API_START_PUSH_TICKET = "https://api.weixin.qq.com/cgi-bin/component/api_start_push_ticket";
+  /**
    * The constant API_CREATE_PREAUTHCODE_URL.
    */
   String API_CREATE_PREAUTHCODE_URL = "https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode";
@@ -221,6 +223,13 @@ public interface WxOpenComponentService {
   boolean checkSignature(String timestamp, String nonce, String signature);
 
   /**
+   * 启动ticket推送服务 该 API 用于启动ticket推送服务
+   *
+   * @throws WxErrorException 如果调用失败返回此异常
+   */
+  void startPushTicket() throws WxErrorException;
+
+  /**
    * Gets component access token.
    *
    * @param forceRefresh the force refresh

+ 11 - 0
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java

@@ -150,6 +150,17 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
   }
 
   @Override
+  public void startPushTicket() throws WxErrorException {
+    WxOpenConfigStorage config = getWxOpenConfigStorage();
+
+    JsonObject json = new JsonObject();
+    json.addProperty("component_appid", config.getComponentAppId());
+    json.addProperty("component_secret", config.getComponentAppSecret());
+
+    getWxOpenService().post(API_START_PUSH_TICKET, json.toString());
+  }
+
+  @Override
   public String getComponentAccessToken(boolean forceRefresh) throws WxErrorException {
     final WxOpenConfigStorage config = this.getWxOpenConfigStorage();
     if (!config.isComponentAccessTokenExpired() && !forceRefresh) {

+ 125 - 111
weixin-java-open/src/test/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImplTest.java

@@ -1,5 +1,10 @@
 package me.chanjar.weixin.open.api.impl;
 
+import com.google.inject.Inject;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.open.api.WxOpenComponentService;
+import me.chanjar.weixin.open.test.ApiTestModule;
+import org.testng.annotations.Guice;
 import org.testng.annotations.Test;
 
 /**
@@ -8,153 +13,162 @@ import org.testng.annotations.Test;
  * @author <a href="https://github.com/binarywang">Binary Wang</a>
  * @date 2020-06-06
  */
+@Guice(modules = ApiTestModule.class)
 public class WxOpenComponentServiceImplTest {
 
-    @Test
-    public void testGetWxMpServiceByAppid() {
-    }
+  @Inject
+  WxOpenComponentService wxOpenComponentService;
 
-    @Test
-    public void testGetWxMaServiceByAppid() {
-    }
+  @Test
+  public void testGetWxMpServiceByAppid() {
+  }
 
-    @Test
-    public void testGetWxFastMaServiceByAppid() {
-    }
+  @Test
+  public void testGetWxMaServiceByAppid() {
+  }
 
-    @Test
-    public void testGetWxOpenService() {
-    }
+  @Test
+  public void testGetWxFastMaServiceByAppid() {
+  }
 
-    @Test
-    public void testGetWxOpenConfigStorage() {
-    }
+  @Test
+  public void testGetWxOpenService() {
+  }
 
-    @Test
-    public void testCheckSignature() {
-    }
+  @Test
+  public void testGetWxOpenConfigStorage() {
+  }
 
-    @Test
-    public void testGetComponentAccessToken() {
-    }
+  @Test
+  public void testCheckSignature() {
+  }
 
-    @Test
-    public void testPost() {
-    }
+  @Test
+  public void testGetComponentAccessToken() {
+  }
 
-    @Test
-    public void testTestPost() {
-    }
+  @Test
+  public void testPost() {
+  }
 
-    @Test
-    public void testGet() {
-    }
+  @Test
+  public void testTestPost() {
+  }
 
-    @Test
-    public void testTestGet() {
-    }
+  @Test
+  public void testGet() {
+  }
 
-    @Test
-    public void testGetPreAuthUrl() {
-    }
+  @Test
+  public void testTestGet() {
+  }
 
-    @Test
-    public void testTestGetPreAuthUrl() {
-    }
+  @Test
+  public void testGetPreAuthUrl() {
+  }
 
-    @Test
-    public void testGetMobilePreAuthUrl() {
-    }
+  @Test
+  public void testTestGetPreAuthUrl() {
+  }
 
-    @Test
-    public void testTestGetMobilePreAuthUrl() {
-    }
+  @Test
+  public void testGetMobilePreAuthUrl() {
+  }
 
-    @Test
-    public void testRoute() {
-    }
+  @Test
+  public void testTestGetMobilePreAuthUrl() {
+  }
 
-    @Test
-    public void testGetQueryAuth() {
-    }
+  @Test
+  public void testRoute() {
+  }
 
-    @Test
-    public void testGetAuthorizerInfo() {
-    }
+  @Test
+  public void testGetQueryAuth() {
+  }
 
-    @Test
-    public void testGetAuthorizerList() {
-    }
+  @Test
+  public void testGetAuthorizerInfo() {
+  }
 
-    @Test
-    public void testGetAuthorizerOption() {
-    }
+  @Test
+  public void testGetAuthorizerList() {
+  }
 
-    @Test
-    public void testSetAuthorizerOption() {
-    }
+  @Test
+  public void testGetAuthorizerOption() {
+  }
 
-    @Test
-    public void testGetAuthorizerAccessToken() {
-    }
+  @Test
+  public void testSetAuthorizerOption() {
+  }
 
-    @Test
-    public void testOauth2getAccessToken() {
-    }
+  @Test
+  public void testGetAuthorizerAccessToken() {
+  }
 
-    @Test
-    public void testTestCheckSignature() {
-    }
+  @Test
+  public void testOauth2getAccessToken() {
+  }
 
-    @Test
-    public void testOauth2refreshAccessToken() {
-    }
+  @Test
+  public void testTestCheckSignature() {
+  }
 
-    @Test
-    public void testOauth2buildAuthorizationUrl() {
-    }
+  @Test
+  public void testOauth2refreshAccessToken() {
+  }
 
-    @Test
-    public void testMiniappJscode2Session() {
-    }
+  @Test
+  public void testOauth2buildAuthorizationUrl() {
+  }
 
-    @Test
-    public void testGetTemplateDraftList() {
-    }
+  @Test
+  public void testMiniappJscode2Session() {
+  }
 
-    @Test
-    public void testGetTemplateList() {
-    }
+  @Test
+  public void testGetTemplateDraftList() {
+  }
 
-    @Test
-    public void testAddToTemplate() {
-    }
+  @Test
+  public void testGetTemplateList() {
+  }
 
-    @Test
-    public void testDeleteTemplate() {
-    }
+  @Test
+  public void testAddToTemplate() {
+  }
 
-    @Test
-    public void testCreateOpenAccount() {
-    }
+  @Test
+  public void testDeleteTemplate() {
+  }
 
-    @Test
-    public void testBindOpenAccount() {
-    }
+  @Test
+  public void testCreateOpenAccount() {
+  }
 
-    @Test
-    public void testUnbindOpenAccount() {
-    }
+  @Test
+  public void testBindOpenAccount() {
+  }
 
-    @Test
-    public void testGetOpenAccount() {
-    }
+  @Test
+  public void testUnbindOpenAccount() {
+  }
 
-    @Test
-    public void testFastRegisterWeapp() {
-    }
+  @Test
+  public void testGetOpenAccount() {
+  }
 
-    @Test
-    public void testFastRegisterWeappSearch() {
-    }
+  @Test
+  public void testFastRegisterWeapp() {
+  }
+
+  @Test
+  public void testFastRegisterWeappSearch() {
+  }
+
+  @Test
+  public void testStartPushTicket() throws WxErrorException {
+    wxOpenComponentService.startPushTicket();
+  }
 }

+ 2 - 0
weixin-java-open/src/test/java/me/chanjar/weixin/open/test/ApiTestModule.java

@@ -5,6 +5,7 @@ import com.google.inject.Module;
 import com.thoughtworks.xstream.XStream;
 import me.chanjar.weixin.common.error.WxRuntimeException;
 import me.chanjar.weixin.common.util.xml.XStreamInitializer;
+import me.chanjar.weixin.open.api.WxOpenComponentService;
 import me.chanjar.weixin.open.api.WxOpenMaService;
 import me.chanjar.weixin.open.api.WxOpenMpService;
 import me.chanjar.weixin.open.api.WxOpenService;
@@ -33,6 +34,7 @@ public class ApiTestModule implements Module {
 
       binder.bind(TestConfigStorage.class).toInstance(config);
       binder.bind(WxOpenService.class).toInstance(service);
+      binder.bind(WxOpenComponentService.class).toInstance(service.getWxOpenComponentService());
 
       if (config.getTestMpAppId() != null && !config.getTestMpAppId().isEmpty()) {
         //如果配置了测试公众号,则构建公众号服务依赖