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 544cfb8e9..8cc77a2d5 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 268ae6bc8..c75f75663 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 61c3459f0..6de1a63ac 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 6b88876fb..23c86768f 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() {
+ }
}