From bb6bec04b1202ce319a0a7ff7470252ae0d9f62b Mon Sep 17 00:00:00 2001 From: ray Wang Date: Mon, 8 Nov 2021 18:44:57 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20#2379=20=E3=80=90=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=BC=80=E6=94=BE=E5=B9=B3=E5=8F=B0=E3=80=91=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=92=8C=E8=AF=95=E7=94=A8=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E5=BF=AB=E9=80=9F=E6=B3=A8=E5=86=8C=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../open/api/WxOpenComponentService.java | 48 +++++++++++++++++++ .../api/impl/WxOpenComponentServiceImpl.java | 28 +++++++++++ .../open/bean/message/WxOpenXmlMessage.java | 15 ++++++ .../result/WxOpenRegisterBetaWeappResult.java | 14 ++++++ .../WxOpenRegisterPersonalWeappResult.java | 15 ++++++ 5 files changed, 120 insertions(+) create mode 100644 weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterBetaWeappResult.java create mode 100644 weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterPersonalWeappResult.java diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java index c25acdf1a..d56d8d432 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java @@ -120,6 +120,21 @@ public interface WxOpenComponentService { */ String FAST_REGISTER_WEAPP_SEARCH_URL = "https://api.weixin.qq.com/cgi-bin/component/fastregisterweapp?action=search"; + /** + * 快速创建个人小程序接口. + */ + String FAST_REGISTER_PERSONAL_WEAPP_URL = "https://api.weixin.qq.com/wxa/component/fastregisterpersonalweapp?action=create"; + + /** + * 查询快速创建个人小程序任务状态接口. + */ + String FAST_REGISTER_PERSONAL_WEAPP_SEARCH_URL = "https://api.weixin.qq.com/wxa/component/fastregisterpersonalweapp?action=query"; + + /** + * 快速创建试用小程序接口. + */ + String FAST_REGISTER_BETA_WEAPP_URL = "https://api.weixin.qq.com/wxa/component/fastregisterbetaweapp"; + /** * 代小程序实现业务. * 小程序代码模版库管理:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1506504150_nMMh6&token=&lang=zh_CN @@ -581,6 +596,39 @@ public interface WxOpenComponentService { WxOpenResult fastRegisterWeappSearch(String name, String legalPersonaWechat, String legalPersonaName) throws WxErrorException; + /** + * https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Register_Mini_Programs/fastregisterpersonalweapp.html + * 快速创建个人小程序 + * + * @param idname 个人用户名字 + * @param wxuser 个人用户微信号 + * @param componentPhone 第三方联系电话 + * @return the wx open result + * @throws WxErrorException + */ + WxOpenRegisterPersonalWeappResult fastRegisterPersonalWeapp(String idname, String wxuser, String componentPhone) throws WxErrorException; + + /** + * https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Register_Mini_Programs/fastregisterpersonalweapp.html + * 查询个人小程序注册任务状态 + * + * @param taskid 任务ID + * @return the wx open result + * @throws WxErrorException + */ + WxOpenRegisterPersonalWeappResult fastRegisterPersonalWeappSearch(String taskid) throws WxErrorException; + + /** + * https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/beta_Mini_Programs/fastregister.html + * 注册试用小程序 + * + * @param name 小程序名称 + * @param openid 微信用户的openid(不是微信号) + * @return the wx open result + * @throws WxErrorException + */ + WxOpenRegisterBetaWeappResult fastRegisterBetaWeapp(String name, String openid) throws WxErrorException; + /** * https://api.weixin.qq.com/product/register/register_shop?component_access_token=xxxxxxxxx * 注册小商店账号 diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java index ac71523a7..28bd71cb5 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java @@ -626,6 +626,34 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService { return WxOpenGsonBuilder.create().fromJson(response, WxOpenResult.class); } + @Override + public WxOpenRegisterPersonalWeappResult fastRegisterPersonalWeapp(String idname, String wxuser, String componentPhone) throws WxErrorException { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("idname", idname); + jsonObject.addProperty("wxuser", wxuser); + jsonObject.addProperty("component_phone", componentPhone); + String response = post(FAST_REGISTER_PERSONAL_WEAPP_URL, jsonObject.toString(), "component_access_token"); + return WxOpenGsonBuilder.create().fromJson(response, WxOpenRegisterPersonalWeappResult.class); + } + + @Override + public WxOpenRegisterPersonalWeappResult fastRegisterPersonalWeappSearch(String taskid) throws WxErrorException { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("taskid", taskid); + String response = post(FAST_REGISTER_PERSONAL_WEAPP_SEARCH_URL, jsonObject.toString(), "component_access_token"); + return WxOpenGsonBuilder.create().fromJson(response, WxOpenRegisterPersonalWeappResult.class); + } + + @Override + public WxOpenRegisterBetaWeappResult fastRegisterBetaWeapp(String name, String openid) throws WxErrorException { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("name", name); + jsonObject.addProperty("openid", openid); + String response = wxOpenService.getWxOpenComponentService() + .post(FAST_REGISTER_BETA_WEAPP_URL, jsonObject.toString(), "access_token"); + return WxOpenGsonBuilder.create().fromJson(response, WxOpenRegisterBetaWeappResult.class); + } + @Override public WxOpenResult registerShop(String wxName, String idCardName, String idCardNumber, String channelId, Integer apiOpenstoreType, String authPageUrl) throws WxErrorException { JsonObject jsonObject = new JsonObject(); diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/message/WxOpenXmlMessage.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/message/WxOpenXmlMessage.java index 7a4135592..a79a7a9af 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/message/WxOpenXmlMessage.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/message/WxOpenXmlMessage.java @@ -102,6 +102,21 @@ public class WxOpenXmlMessage implements Serializable { @XStreamAlias("component_phone") @XStreamConverter(value = XStreamCDataConverter.class) private String componentPhone; + + // 创建个人小程序审核通知数据 + @XStreamAlias("wxuser") + @XStreamConverter(value = XStreamCDataConverter.class) + private String wxuser; + + @XStreamAlias("idname") + @XStreamConverter(value = XStreamCDataConverter.class) + private String idname; + + // 创建试用小程序成功/失败的通知数据 + @XStreamAlias("unique_id") + @XStreamConverter(value = XStreamCDataConverter.class) + private String uniqueId; + } public static String wxMpOutXmlMessageToEncryptedXml(WxMpXmlOutMessage message, WxOpenConfigStorage wxOpenConfigStorage) { diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterBetaWeappResult.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterBetaWeappResult.java new file mode 100644 index 000000000..735a26eca --- /dev/null +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterBetaWeappResult.java @@ -0,0 +1,14 @@ +package me.chanjar.weixin.open.bean.result; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +public class WxOpenRegisterBetaWeappResult extends WxOpenResult { + @SerializedName("authorize_url") + private String authorizeUrl; + @SerializedName("unique_id") + protected String uniqueId; +} diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterPersonalWeappResult.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterPersonalWeappResult.java new file mode 100644 index 000000000..18ef23e39 --- /dev/null +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterPersonalWeappResult.java @@ -0,0 +1,15 @@ +package me.chanjar.weixin.open.bean.result; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +public class WxOpenRegisterPersonalWeappResult extends WxOpenResult { + private String taskid; + @SerializedName("authorize_url") + private String authorizeUrl; + @SerializedName("status") + private Integer status; +}