소스 검색

issue #81 增加获取微信服务器的ip段接口

master
Daniel Qian 10 년 전
부모
커밋
037c326ebf
2개의 변경된 파일23개의 추가작업 그리고 0개의 파일을 삭제
  1. +10
    -0
      weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java
  2. +13
    -0
      weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java

+ 10
- 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java 파일 보기

@@ -327,6 +327,16 @@ public interface WxCpService {
*/ */
public int invite(String userId, String inviteTips) throws WxErrorException; public int invite(String userId, String inviteTips) throws WxErrorException;


/**
* <pre>
* 获取微信服务器的ip段
* http://qydev.weixin.qq.com/wiki/index.php?title=回调模式#.E8.8E.B7.E5.8F.96.E5.BE.AE.E4.BF.A1.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84ip.E6.AE.B5
* </pre>
* @return { "ip_list": ["101.226.103.*", "101.226.62.*"] }
* @throws WxErrorException
*/
String[] getCallbackIp() throws WxErrorException;

/** /**
* 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的GET请求 * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的GET请求
* @param url * @param url


+ 13
- 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java 파일 보기

@@ -370,6 +370,19 @@ public class WxCpServiceImpl implements WxCpService {
return tmpJsonElement.getAsJsonObject().get("type").getAsInt(); return tmpJsonElement.getAsJsonObject().get("type").getAsInt();
} }


@Override
public String[] getCallbackIp() throws WxErrorException {
String url = "https://qyapi.weixin.qq.com/cgi-bin/getcallbackip";
String responseContent = get(url, null);
JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent)));
JsonArray jsonArray = tmpJsonElement.getAsJsonObject().get("ip_list").getAsJsonArray();
String[] ips = new String[jsonArray.size()];
for(int i = 0; i < jsonArray.size(); i++) {
ips[i] = jsonArray.get(i).getAsString();
}
return ips;
}

public String get(String url, String queryParam) throws WxErrorException { public String get(String url, String queryParam) throws WxErrorException {
return execute(new SimpleGetRequestExecutor(), url, queryParam); return execute(new SimpleGetRequestExecutor(), url, queryParam);
} }


불러오는 중...
취소
저장