From d056cc8abe43b3526011f21ffbdf6090a7e614fc Mon Sep 17 00:00:00 2001 From: gxh0797 <110033355+gxh0797@users.noreply.github.com> Date: Tue, 26 Jul 2022 21:47:39 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20#2752=20=E3=80=90=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E3=80=91=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E7=89=88=E6=9C=AC=E4=BF=A1=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BB=A5=E5=8F=8A=E7=AC=AC=E4=B8=89=E6=96=B9?= =?UTF-8?q?userid=5Fto=5Fopenuserid=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 | 12 ++++++ .../cp/api/impl/WxCpUserServiceImpl.java | 17 ++++++++ .../cp/bean/WxCpUseridToOpenUserid.java | 35 ++++++++++++++++ .../cp/bean/WxCpUseridToOpenUseridResult.java | 42 +++++++++++++++++++ .../weixin/cp/constant/WxCpApiPathConsts.java | 1 + .../weixin/open/api/WxOpenMaService.java | 13 ++++++ .../open/api/impl/WxOpenMaServiceImpl.java | 8 ++++ 7 files changed, 128 insertions(+) create mode 100644 weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUseridToOpenUserid.java create mode 100644 weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUseridToOpenUseridResult.java 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 e5a51eea1f..569f9172ea 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 @@ -3,8 +3,10 @@ import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.cp.bean.WxCpInviteResult; import me.chanjar.weixin.cp.bean.WxCpUser; +import me.chanjar.weixin.cp.bean.WxCpUseridToOpenUseridResult; import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -217,4 +219,14 @@ public interface WxCpUserService { * @throws WxErrorException . */ Integer getActiveStat(Date date) throws WxErrorException; + + /** + * userid转换为open_userid + * 将自建应用或代开发应用获取的userid转换为第三方应用的userid + * https://developer.work.weixin.qq.com/document/path/95603 + * @param useridList + * @return the WxCpUseridToOpenUseridResult + * @throws WxErrorException + */ + WxCpUseridToOpenUseridResult useridToOpenUserid(ArrayList useridList) 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 b789fc1b63..219a07eb42 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 @@ -12,11 +12,14 @@ import me.chanjar.weixin.cp.api.WxCpUserService; import me.chanjar.weixin.cp.bean.WxCpInviteResult; import me.chanjar.weixin.cp.bean.WxCpUser; +import me.chanjar.weixin.cp.bean.WxCpUseridToOpenUseridResult; import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo; +import me.chanjar.weixin.cp.constant.WxCpApiPathConsts; import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; import org.apache.commons.lang3.time.FastDateFormat; import java.text.Format; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -223,4 +226,18 @@ public Integer getActiveStat(Date date) throws WxErrorException { JsonObject tmpJson = GsonParser.parse(responseContent); return tmpJson.get("active_cnt").getAsInt(); } + + @Override + public WxCpUseridToOpenUseridResult useridToOpenUserid(ArrayList useridList) throws WxErrorException { + JsonObject jsonObject = new JsonObject(); + JsonArray jsonArray = new JsonArray(); + for(String userid:useridList){ + jsonArray.add(userid); + } + jsonObject.add("userid_list", jsonArray); + String url = this.mainService.getWxCpConfigStorage().getApiUrl(USERID_TO_OPEN_USERID); + String responseContent = this.mainService.post(url, jsonObject.toString()); + return WxCpUseridToOpenUseridResult.fromJson(responseContent); + } + } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUseridToOpenUserid.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUseridToOpenUserid.java new file mode 100644 index 0000000000..2b5cfd4351 --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUseridToOpenUserid.java @@ -0,0 +1,35 @@ +package me.chanjar.weixin.cp.bean; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; + +import java.io.Serializable; + +/** + * userid转换为open_userid + * 将自建应用或代开发应用获取的userid转换为第三方应用的userid + * 中间对象 + * Created by gxh0797 on 2022.07.26. + * + */ +@Data +public class WxCpUseridToOpenUserid implements Serializable { + private static final long serialVersionUID = 1420065684270213578L; + + @Override + public String toString() { + return WxCpGsonBuilder.create().toJson(this); + } + + public static WxCpUseridToOpenUserid fromJson(String json) { + return WxCpGsonBuilder.create().fromJson(json, WxCpUseridToOpenUserid.class); + } + + @SerializedName("userid") + private String userid; + + @SerializedName("open_userid") + private String openUserid; + +} diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUseridToOpenUseridResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUseridToOpenUseridResult.java new file mode 100644 index 0000000000..90d002f174 --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUseridToOpenUseridResult.java @@ -0,0 +1,42 @@ +package me.chanjar.weixin.cp.bean; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; + +import java.io.Serializable; +import java.util.List; + +/** + * userid转换为open_userid + * 将自建应用或代开发应用获取的userid转换为第三方应用的userid + * Created by gxh0797 on 2022.07.26. + * + */ +@Data +public class WxCpUseridToOpenUseridResult implements Serializable { + private static final long serialVersionUID = 1420065684270213578L; + + @Override + public String toString() { + return WxCpGsonBuilder.create().toJson(this); + } + + public static WxCpUseridToOpenUseridResult fromJson(String json) { + return WxCpGsonBuilder.create().fromJson(json, WxCpUseridToOpenUseridResult.class); + } + + @SerializedName("errcode") + private Integer errCode; + + @SerializedName("errmsg") + private String errMsg; + + @SerializedName("open_userid_list") + private List openUseridList; + + @SerializedName("invalid_userid_list") + private List invalidUseridList; + + +} 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 5e4c134c01..cb05320837 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 @@ -324,6 +324,7 @@ interface User { String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid="; String GET_JOIN_QR_CODE = "/cgi-bin/corp/get_join_qrcode?size_type="; String GET_ACTIVE_STAT = "/cgi-bin/user/get_active_stat"; + String USERID_TO_OPEN_USERID = "/cgi-bin/batch/userid_to_openuserid"; } interface ExternalContact { diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java index 16e9532e64..e58fe4f6bd 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java @@ -251,6 +251,11 @@ public interface WxOpenMaService extends WxMaService { */ String API_WX_AMP_LINK_UN = "https://api.weixin.qq.com/cgi-bin/wxopen/wxampunlink"; + /** + * 小程序管理-查询小程序版本信息 + */ + String API_GET_VERSION_INFO = "https://api.weixin.qq.com/wxa/getversioninfo"; + /** * 获得小程序的域名配置信息 * @@ -702,4 +707,12 @@ WxOpenMaDomainResult modifyDomain(String action, List requestDomains, Li */ WxOpenResult wxAmpUnLink(String appid) throws WxErrorException; + /** + * 查询小程序版本信息 + * + * @return the wx open result + * @throws WxErrorException the wx error exception + */ + WxOpenResult getVersionInfo() throws WxErrorException; + } diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java index 8933d2a124..1febfadba0 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java @@ -439,4 +439,12 @@ private JsonArray toJsonArray(List strList) { } return jsonArray; } + + @Override + public WxOpenResult getVersionInfo() throws WxErrorException { + JsonObject params = new JsonObject(); + String response = post(API_GET_VERSION_INFO, GSON.toJson(params)); + WxOpenResult result = WxMaGsonBuilder.create().fromJson(response, WxOpenResult.class); + return result; + } }