Przeglądaj źródła

issue #6 长链接转短链接接口

master
Daniel Qian 10 lat temu
rodzic
commit
db9de2a8c4
4 zmienionych plików z 54 dodań i 2 usunięć
  1. +11
    -0
      src/main/java/chanjarster/weixin/api/WxService.java
  2. +13
    -2
      src/main/java/chanjarster/weixin/api/WxServiceImpl.java
  3. +28
    -0
      src/test/java/chanjarster/weixin/api/WxShortUrlAPITest.java
  4. +2
    -0
      src/test/resources/testng.xml

+ 11
- 0
src/main/java/chanjarster/weixin/api/WxService.java Wyświetl plik

@@ -305,6 +305,17 @@ public interface WxService {
*/
public File qrCodePicture(WxQrCodeTicket ticket) throws WxErrorException;

/**
* <pre>
* 长链接转短链接接口
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=长链接转短链接接口
* </pre>
* @param long_url
* @return
* @throws WxErrorException
*/
public String shortUrl(String long_url) throws WxErrorException;
/**
* 注入 {@link WxConfigStorage} 的实现
* @param wxConfigProvider


+ 13
- 2
src/main/java/chanjarster/weixin/api/WxServiceImpl.java Wyświetl plik

@@ -5,7 +5,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.security.MessageDigest;
import java.text.MessageFormat;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
@@ -226,7 +225,9 @@ public class WxServiceImpl implements WxService {
public long groupQueryUserGroup(String openid) throws WxErrorException {
String url = "https://api.weixin.qq.com/cgi-bin/groups/getid";
String responseContent = execute(new SimplePostRequestExecutor(), url, MessageFormat.format("'{'\"openid\":\"{0}\"}", openid));
JsonObject o = new JsonObject();
o.addProperty("openid", openid);
String responseContent = execute(new SimplePostRequestExecutor(), url, o.toString());
JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent)));
return GsonHelper.getAsLong(tmpJsonElement.getAsJsonObject().get("groupid"));
}
@@ -299,6 +300,16 @@ public class WxServiceImpl implements WxService {
return execute(new QrCodeRequestExecutor(), url, ticket);
}
public String shortUrl(String long_url) throws WxErrorException {
String url = "https://api.weixin.qq.com/cgi-bin/shorturl";
JsonObject o = new JsonObject();
o.addProperty("action", "long2short");
o.addProperty("long_url", long_url);
String responseContent = execute(new SimplePostRequestExecutor(), url, o.toString());
JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent)));
return tmpJsonElement.getAsJsonObject().get("short_url").getAsString();
}
/**
* 向微信端发送请求,在这里执行的策略是当发生access_token过期时才去刷新,然后重新执行请求,而不是全局定时请求
* @param executor


+ 28
- 0
src/test/java/chanjarster/weixin/api/WxShortUrlAPITest.java Wyświetl plik

@@ -0,0 +1,28 @@
package chanjarster.weixin.api;

import org.testng.Assert;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;

import chanjarster.weixin.exception.WxErrorException;

import com.google.inject.Inject;

/**
* 测试用户相关的接口
*
* @author chanjarster
*/
@Test(groups = "shortURLAPI", dependsOnGroups = { "baseAPI" })
@Guice(modules = ApiTestModule.class)
public class WxShortUrlAPITest {

@Inject
protected WxServiceImpl wxService;

public void testShortUrl() throws WxErrorException {
String shortUrl = wxService.shortUrl("www.baidu.com");
Assert.assertNotNull(shortUrl);
}

}

+ 2
- 0
src/test/resources/testng.xml Wyświetl plik

@@ -11,6 +11,8 @@
<class name="chanjarster.weixin.api.WxMediaAPITest" />
<class name="chanjarster.weixin.api.WxMassMessageAPITest" />
<class name="chanjarster.weixin.api.WxUserAPITest" />
<class name="chanjarster.weixin.api.WxQrCodeAPITest" />
<class name="chanjarster.weixin.api.WxShortUrlAPITest" />
</classes>
</test>



Ładowanie…
Anuluj
Zapisz