From 7033b1d5d659cd1ced1257a9bc67b1060c8e91c5 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sat, 10 Aug 2019 17:53:07 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20#1144=20=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=9D=97=E5=A2=9E=E5=8A=A0=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E6=89=8B=E6=9C=BA=E5=8F=B7=E8=8E=B7=E5=8F=96userid?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/cp/api/WxCpUserService.java | 19 +++++++++++++++++++ .../cp/api/impl/WxCpUserServiceImpl.java | 10 ++++++++++ .../weixin/cp/constant/WxCpApiPathConsts.java | 1 + .../cp/api/impl/WxCpUserServiceImplTest.java | 10 ++++++++++ 4 files changed, 40 insertions(+) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java index 544cfb8e..8cc77a2d 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java @@ -137,6 +137,23 @@ public interface WxCpUserService { */ String openid2UserId(String openid) throws WxErrorException; + /** + *
+   *
+   * 通过手机号获取其所对应的userid。
+   *
+   * 请求方式:POST(HTTPS)
+   * 请求地址:https://qyapi.weixin.qq.com/cgi-bin/user/getuserid?access_token=ACCESS_TOKEN
+   *
+   * 文档地址:https://work.weixin.qq.com/api/doc#90001/90143/91693
+   * 
+ * + * @param mobile 手机号码。长度为5~32个字节 + * @return userid mobile对应的成员userid + * @throws WxErrorException . + */ + String getUserId(String mobile) throws WxErrorException; + /** * 获取外部联系人详情. *
@@ -147,6 +164,8 @@ public interface WxCpUserService {
    * 
* * @param userId 外部联系人的userid + * @return 联系人详情 + * @throws WxErrorException . */ WxCpUserExternalContactInfo getExternalContact(String userId) throws WxErrorException; diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java index 268ae6bc..c75f7566 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java @@ -180,6 +180,16 @@ public class WxCpUserServiceImpl implements WxCpUserService { return tmpJsonElement.getAsJsonObject().get("userid").getAsString(); } + @Override + public String getUserId(String mobile) throws WxErrorException { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("mobile", mobile); + String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_USER_ID); + String responseContent = this.mainService.post(url, jsonObject.toString()); + JsonElement tmpJsonElement = new JsonParser().parse(responseContent); + return tmpJsonElement.getAsJsonObject().get("userid").getAsString(); + } + @Override public WxCpUserExternalContactInfo getExternalContact(String userId) throws WxErrorException { String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_EXTERNAL_CONTACT + userId); diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java index 61c3459f..6de1a63a 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java @@ -101,6 +101,7 @@ public final class WxCpApiPathConsts { public static final String BATCH_INVITE = "/cgi-bin/batch/invite"; public static final String USER_CONVERT_TO_OPENID = "/cgi-bin/user/convert_to_openid"; public static final String USER_CONVERT_TO_USERID = "/cgi-bin/user/convert_to_userid"; + public static final String GET_USER_ID = "/cgi-bin/user/getuserid"; public static final String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid="; } diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImplTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImplTest.java index 6b88876f..23c86768 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImplTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImplTest.java @@ -112,4 +112,14 @@ public class WxCpUserServiceImplTest { } + @Test + public void testGetUserId() throws WxErrorException { + String result = this.wxCpService.getUserService().getUserId("xxx"); + System.out.println(result); + assertNotNull(result); + } + + @Test + public void testGetExternalContact() { + } }