From 591b2d83c61d78f4c77e870f6d674e75fd7f0be6 Mon Sep 17 00:00:00 2001 From: hywr <33077958+hywr@users.noreply.github.com> Date: Wed, 23 Jun 2021 16:14:20 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20#2163=20=E3=80=90=E5=BC=80=E6=94=BE?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E3=80=91=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=8F=AF=E5=9B=9E=E9=80=80=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E7=9A=84=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 | 2 + .../weixin/open/api/WxOpenFastMaService.java | 191 +---------------- .../weixin/open/api/WxOpenMaBasicService.java | 199 ++++++++++++++++++ .../weixin/open/api/WxOpenMaService.java | 17 ++ .../api/impl/WxOpenFastMaServiceImpl.java | 2 + .../api/impl/WxOpenMaBasicServiceImpl.java | 135 ++++++++++++ .../open/api/impl/WxOpenMaServiceImpl.java | 11 + .../open/bean/ma/WxOpenMaHistoryVersion.java | 34 +++ .../result/WxOpenMaHistoryVersionResult.java | 29 +++ 9 files changed, 432 insertions(+), 188 deletions(-) create mode 100644 weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaBasicService.java create mode 100644 weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaBasicServiceImpl.java create mode 100644 weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxOpenMaHistoryVersion.java create mode 100644 weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenMaHistoryVersionResult.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 26dc2ba7f..4c7f5b091 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 @@ -148,7 +148,9 @@ public interface WxOpenComponentService { * * @param appid . * @return . wx fast ma service by appid + * @deprecated 2021-06-23 本接口原有方法并非仅快速创建小程序的专用接口,普通小程序授权到第三方平台皆可使用,所以请使用 {@link WxOpenMaBasicService} 类替代。获取方法: WxOpenMaService.getBasicService() */ + @Deprecated WxOpenFastMaService getWxFastMaServiceByAppid(String appid); /** diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenFastMaService.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenFastMaService.java index 8710689cd..2114d1a81 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenFastMaService.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenFastMaService.java @@ -1,11 +1,6 @@ package me.chanjar.weixin.open.api; import cn.binarywang.wx.miniapp.api.WxMaService; -import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.open.bean.ma.WxFastMaCategory; -import me.chanjar.weixin.open.bean.result.*; - -import java.util.List; /** *
@@ -16,189 +11,9 @@ import java.util.List; * * @author Hipple * @date 2019/01/23 + * @deprecated 2021-06-23 本接口原有方法并非仅快速创建小程序的专用接口,普通小程序授权到第三方平台皆可使用,所以请使用 {@link WxOpenMaBasicService} 类替代。获取方法: WxOpenComponentService.getWxMaServiceByAppid(maApppId).getBasicService() */ -public interface WxOpenFastMaService extends WxMaService { - /** - * 1 获取帐号基本信息. - */ - String OPEN_GET_ACCOUNT_BASIC_INFO = "https://api.weixin.qq.com/cgi-bin/account/getaccountbasicinfo"; +@Deprecated +public interface WxOpenFastMaService extends WxOpenMaBasicService, WxMaService { - /** - * 2 小程序名称设置及改名. - */ - String OPEN_SET_NICKNAME = "https://api.weixin.qq.com/wxa/setnickname"; - - /** - * 3 小程序改名审核状态查询. - */ - String OPEN_API_WXA_QUERYNICKNAME = "https://api.weixin.qq.com/wxa/api_wxa_querynickname"; - - /** - * 4 微信认证名称检测. - */ - String OPEN_CHECK_WX_VERIFY_NICKNAME = "https://api.weixin.qq.com/cgi-bin/wxverify/checkwxverifynickname"; - - /** - * 5 修改头像. - */ - String OPEN_MODIFY_HEADIMAGE = "https://api.weixin.qq.com/cgi-bin/account/modifyheadimage"; - - /** - * 6修改功能介绍. - */ - String OPEN_MODIFY_SIGNATURE = "https://api.weixin.qq.com/cgi-bin/account/modifysignature"; - - /** - * 7 换绑小程序管理员接口. - */ - String OPEN_COMPONENT_REBIND_ADMIN = "https://api.weixin.qq.com/cgi-bin/account/componentrebindadmin"; - - /** - * 8.1 获取账号可以设置的所有类目 - */ - String OPEN_GET_ALL_CATEGORIES = "https://api.weixin.qq.com/cgi-bin/wxopen/getallcategories"; - /** - * 8.2 添加类目 - */ - String OPEN_ADD_CATEGORY = "https://api.weixin.qq.com/cgi-bin/wxopen/addcategory"; - /** - * 8.3 删除类目 - */ - String OPEN_DELETE_CATEGORY = "https://api.weixin.qq.com/cgi-bin/wxopen/deletecategory"; - /** - * 8.4 获取账号已经设置的所有类目 - */ - String OPEN_GET_CATEGORY = "https://api.weixin.qq.com/cgi-bin/wxopen/getcategory"; - /** - * 8.5 修改类目 - */ - String OPEN_MODIFY_CATEGORY = "https://api.weixin.qq.com/cgi-bin/wxopen/modifycategory"; - - - /** - * 1.获取小程序的信息 - * - * @return . - * @throws WxErrorException . - */ - WxFastMaAccountBasicInfoResult getAccountBasicInfo() throws WxErrorException; - - /** - * 2.小程序名称设置及改名 - *- * 若接口未返回audit_id,说明名称已直接设置成功,无需审核;若返回audit_id则名称正在审核中。 - *- * - * @param nickname 昵称 - * @param idCard 身份证照片–临时素材mediaid(个人号必填) - * @param license 组织机构代码证或营业执照–临时素材mediaid(组织号必填) - * @param namingOtherStuff1 其他证明材料---临时素材 mediaid - * @param namingOtherStuff2 其他证明材料---临时素材 mediaid - * @return . - * @throws WxErrorException . - */ - WxFastMaSetNickameResult setNickname(String nickname, String idCard, String license, String namingOtherStuff1, - String namingOtherStuff2) throws WxErrorException; - - /** - * 3 小程序改名审核状态查询 - * - * @param auditId 审核单id - * @return . - * @throws WxErrorException . - */ - WxFastMaQueryNicknameStatusResult querySetNicknameStatus(String auditId) throws WxErrorException; - - /** - * 4. 微信认证名称检测 - * - * @param nickname 名称 - * @return . - * @throws WxErrorException . - */ - WxFastMaCheckNickameResult checkWxVerifyNickname(String nickname) throws WxErrorException; - - /** - * 5.修改头像 - *- * 图片格式只支持:BMP、JPEG、JPG、GIF、PNG,大小不超过2M - * 注:实际头像始终为正方形 - *- * - * @param headImgMediaId 头像素材media_id - * @param x1 裁剪框左上角x坐标(取值范围:[0, 1]) - * @param y1 裁剪框左上角y坐标(取值范围:[0, 1]) - * @param x2 裁剪框右下角x坐标(取值范围:[0, 1]) - * @param y2 裁剪框右下角y坐标(取值范围:[0, 1]) - * @return . - * @throws WxErrorException . - */ - WxOpenResult modifyHeadImage(String headImgMediaId, float x1, float y1, float x2, float y2) throws WxErrorException; - - /** - * 6.修改功能介绍 - * - * @param signature 简介:4-120字 - * @return . - * @throws WxErrorException . - */ - WxOpenResult modifySignature(String signature) throws WxErrorException; - - /** - * 7.3 管理员换绑 - * - * @param taskId 换绑管理员任务序列号(公众平台最终点击提交回跳到第三方平台时携带) - * @return . - * @throws WxErrorException . - */ - WxOpenResult componentRebindAdmin(String taskId) throws WxErrorException; - - /** - * 8.1 获取账号可以设置的所有类目 - *- * 因为不同类目含有特定字段 - * 目前没有完整的类目信息数据 - * 为保证兼容性,放弃将response转换为实体 - *- * - * @return . - * @throws WxErrorException . - */ - String getAllCategories() throws WxErrorException; - - /** - * 8.2添加类目 - * - * @param categoryList 类目列表 - * @return . - * @throws WxErrorException . - */ - WxOpenResult addCategory(ListcategoryList) throws WxErrorException; - - /** - * 8.3删除类目 - * - * @param first 一级类目ID - * @param second 二级类目ID - * @return . - * @throws WxErrorException . - */ - WxOpenResult deleteCategory(int first, int second) throws WxErrorException; - - /** - * 8.4获取账号已经设置的所有类目 - * - * @return . - * @throws WxErrorException . - */ - WxFastMaBeenSetCategoryResult getCategory() throws WxErrorException; - - /** - * 8.5修改类目 - * - * @param category 实体 - * @return . - * @throws WxErrorException . - */ - WxOpenResult modifyCategory(WxFastMaCategory category) throws WxErrorException; } diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaBasicService.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaBasicService.java new file mode 100644 index 000000000..194da4b9b --- /dev/null +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaBasicService.java @@ -0,0 +1,199 @@ +package me.chanjar.weixin.open.api; + +import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.open.bean.ma.WxFastMaCategory; +import me.chanjar.weixin.open.bean.result.*; + +import java.util.List; + +/** + * 微信第三方平台 小程序基础信息接口 (小程序名称、头像、描述、类目等信息设置) + * https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/category/getallcategories.html + * + * @author 广州跨界 + */ +public interface WxOpenMaBasicService { + /** + * 1 获取帐号基本信息. + */ + String OPEN_GET_ACCOUNT_BASIC_INFO = "https://api.weixin.qq.com/cgi-bin/account/getaccountbasicinfo"; + + /** + * 2 小程序名称设置及改名. + */ + String OPEN_SET_NICKNAME = "https://api.weixin.qq.com/wxa/setnickname"; + + /** + * 3 小程序改名审核状态查询. + */ + String OPEN_API_WXA_QUERYNICKNAME = "https://api.weixin.qq.com/wxa/api_wxa_querynickname"; + + /** + * 4 微信认证名称检测. + */ + String OPEN_CHECK_WX_VERIFY_NICKNAME = "https://api.weixin.qq.com/cgi-bin/wxverify/checkwxverifynickname"; + + /** + * 5 修改头像. + */ + String OPEN_MODIFY_HEADIMAGE = "https://api.weixin.qq.com/cgi-bin/account/modifyheadimage"; + + /** + * 6修改功能介绍. + */ + String OPEN_MODIFY_SIGNATURE = "https://api.weixin.qq.com/cgi-bin/account/modifysignature"; + + /** + * 7 换绑小程序管理员接口. + */ + String OPEN_COMPONENT_REBIND_ADMIN = "https://api.weixin.qq.com/cgi-bin/account/componentrebindadmin"; + + /** + * 8.1 获取账号可以设置的所有类目 + */ + String OPEN_GET_ALL_CATEGORIES = "https://api.weixin.qq.com/cgi-bin/wxopen/getallcategories"; + /** + * 8.2 添加类目 + */ + String OPEN_ADD_CATEGORY = "https://api.weixin.qq.com/cgi-bin/wxopen/addcategory"; + /** + * 8.3 删除类目 + */ + String OPEN_DELETE_CATEGORY = "https://api.weixin.qq.com/cgi-bin/wxopen/deletecategory"; + /** + * 8.4 获取账号已经设置的所有类目 + */ + String OPEN_GET_CATEGORY = "https://api.weixin.qq.com/cgi-bin/wxopen/getcategory"; + /** + * 8.5 修改类目 + */ + String OPEN_MODIFY_CATEGORY = "https://api.weixin.qq.com/cgi-bin/wxopen/modifycategory"; + + + /** + * 1.获取小程序的信息 + * + * @return . + * @throws WxErrorException . + */ + WxFastMaAccountBasicInfoResult getAccountBasicInfo() throws WxErrorException; + + /** + * 2.小程序名称设置及改名 + * + * 若接口未返回audit_id,说明名称已直接设置成功,无需审核;若返回audit_id则名称正在审核中。 + *+ * + * @param nickname 昵称 + * @param idCard 身份证照片–临时素材mediaid(个人号必填) + * @param license 组织机构代码证或营业执照–临时素材mediaid(组织号必填) + * @param namingOtherStuff1 其他证明材料---临时素材 mediaid + * @param namingOtherStuff2 其他证明材料---临时素材 mediaid + * @return . + * @throws WxErrorException . + */ + WxFastMaSetNickameResult setNickname(String nickname, String idCard, String license, String namingOtherStuff1, + String namingOtherStuff2) throws WxErrorException; + + /** + * 3 小程序改名审核状态查询 + * + * @param auditId 审核单id + * @return . + * @throws WxErrorException . + */ + WxFastMaQueryNicknameStatusResult querySetNicknameStatus(String auditId) throws WxErrorException; + + /** + * 4. 微信认证名称检测 + * + * @param nickname 名称 + * @return . + * @throws WxErrorException . + */ + WxFastMaCheckNickameResult checkWxVerifyNickname(String nickname) throws WxErrorException; + + /** + * 5.修改头像 + *+ * 图片格式只支持:BMP、JPEG、JPG、GIF、PNG,大小不超过2M + * 注:实际头像始终为正方形 + *+ * + * @param headImgMediaId 头像素材media_id + * @param x1 裁剪框左上角x坐标(取值范围:[0, 1]) + * @param y1 裁剪框左上角y坐标(取值范围:[0, 1]) + * @param x2 裁剪框右下角x坐标(取值范围:[0, 1]) + * @param y2 裁剪框右下角y坐标(取值范围:[0, 1]) + * @return . + * @throws WxErrorException . + */ + WxOpenResult modifyHeadImage(String headImgMediaId, float x1, float y1, float x2, float y2) throws WxErrorException; + + /** + * 6.修改功能介绍 + * + * @param signature 简介:4-120字 + * @return . + * @throws WxErrorException . + */ + WxOpenResult modifySignature(String signature) throws WxErrorException; + + /** + * 7.3 管理员换绑 + * + * @param taskId 换绑管理员任务序列号(公众平台最终点击提交回跳到第三方平台时携带) + * @return . + * @throws WxErrorException . + */ + WxOpenResult componentRebindAdmin(String taskId) throws WxErrorException; + + /** + * 8.1 获取账号可以设置的所有类目 + *+ * 因为不同类目含有特定字段 + * 目前没有完整的类目信息数据 + * 为保证兼容性,放弃将response转换为实体 + *+ * + * @return . + * @throws WxErrorException . + */ + String getAllCategories() throws WxErrorException; + + /** + * 8.2添加类目 + * + * @param categoryList 类目列表 + * @return . + * @throws WxErrorException . + */ + WxOpenResult addCategory(ListcategoryList) throws WxErrorException; + + /** + * 8.3删除类目 + * + * @param first 一级类目ID + * @param second 二级类目ID + * @return . + * @throws WxErrorException . + */ + WxOpenResult deleteCategory(int first, int second) throws WxErrorException; + + /** + * 8.4获取账号已经设置的所有类目 + * + * @return . + * @throws WxErrorException . + */ + WxFastMaBeenSetCategoryResult getCategory() throws WxErrorException; + + /** + * 8.5修改类目 + * + * @param category 实体 + * @return . + * @throws WxErrorException . + */ + WxOpenResult modifyCategory(WxFastMaCategory category) throws WxErrorException; +} 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 ccaeeff01..9732e614a 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 @@ -452,6 +452,16 @@ public interface WxOpenMaService extends WxMaService { */ WxOpenResult revertCodeRelease() throws WxErrorException; + /** + * 获取可回退的小程序版本 + * 调用本接口可以获取可回退的小程序版本(最多保存最近发布或回退的5个版本 + * 文档地址: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/get_history_version.html + * + * @return 历史版本信息 + * @throws WxErrorException 如果调用微信接口失败抛出此异常 + */ + WxOpenMaHistoryVersionResult getHistoryVersion() throws WxErrorException; + /** * 15. 小程序审核撤回 * @@ -583,4 +593,11 @@ public interface WxOpenMaService extends WxMaService { * @throws WxErrorException the wx error exception */ WxOpenResult publishQrcodeJump(String prefix) throws WxErrorException; + + /** + * 小程序基础信息服务 (小程序名称、头像、描述、类目等信息设置) + * + * @return 小程序基础信息服务 + */ + WxOpenMaBasicService getBasicService(); } diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenFastMaServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenFastMaServiceImpl.java index 2cea9530b..f5f2160d2 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenFastMaServiceImpl.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenFastMaServiceImpl.java @@ -20,7 +20,9 @@ import java.util.Map; * * @author Hipple * @since 2019/1/23 15:27 + * @deprecated 请使用 {@link WxOpenMaServiceImpl} 替代 */ +@Deprecated public class WxOpenFastMaServiceImpl extends WxMaServiceImpl implements WxOpenFastMaService { private final WxOpenComponentService wxOpenComponentService; private final WxMaConfig wxMaConfig; diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaBasicServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaBasicServiceImpl.java new file mode 100644 index 000000000..4e4db7525 --- /dev/null +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaBasicServiceImpl.java @@ -0,0 +1,135 @@ +package me.chanjar.weixin.open.api.impl; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.open.api.WxOpenMaBasicService; +import me.chanjar.weixin.open.bean.ma.WxFastMaCategory; +import me.chanjar.weixin.open.bean.result.*; +import me.chanjar.weixin.open.util.json.WxOpenGsonBuilder; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 微信第三方平台 小程序基础信息接口 + * + * @author 广州跨界 + */ +public class WxOpenMaBasicServiceImpl implements WxOpenMaBasicService { + + private final WxMaService wxMaService; + + public WxOpenMaBasicServiceImpl(WxMaService wxMaService) { + this.wxMaService = wxMaService; + } + + + @Override + public WxFastMaAccountBasicInfoResult getAccountBasicInfo() throws WxErrorException { + String response = wxMaService.get(OPEN_GET_ACCOUNT_BASIC_INFO, ""); + return WxOpenGsonBuilder.create().fromJson(response, WxFastMaAccountBasicInfoResult.class); + } + + @Override + public WxFastMaSetNickameResult setNickname(String nickname, String idCard, String license, String namingOtherStuff1, String namingOtherStuff2) throws WxErrorException { + JsonObject params = new JsonObject(); + params.addProperty("nick_name", nickname); + params.addProperty("id_card", idCard); + params.addProperty("license", license); + params.addProperty("naming_other_stuff_1", namingOtherStuff1); + params.addProperty("naming_other_stuff_2", namingOtherStuff2); + String response = wxMaService.post(OPEN_SET_NICKNAME, params); + return WxOpenGsonBuilder.create().fromJson(response, WxFastMaSetNickameResult.class); + } + + @Override + public WxFastMaQueryNicknameStatusResult querySetNicknameStatus(String auditId) throws WxErrorException { + JsonObject params = new JsonObject(); + params.addProperty("audit_id", auditId); + String response = wxMaService.post(OPEN_API_WXA_QUERYNICKNAME, params); + return WxOpenGsonBuilder.create().fromJson(response, WxFastMaQueryNicknameStatusResult.class); + } + + @Override + public WxFastMaCheckNickameResult checkWxVerifyNickname(String nickname) throws WxErrorException { + JsonObject params = new JsonObject(); + params.addProperty("nick_name", nickname); + String response = wxMaService.post(OPEN_CHECK_WX_VERIFY_NICKNAME, params); + return WxOpenGsonBuilder.create().fromJson(response, WxFastMaCheckNickameResult.class); + } + + @Override + public WxOpenResult modifyHeadImage(String headImgMediaId, float x1, float y1, float x2, float y2) throws WxErrorException { + JsonObject params = new JsonObject(); + params.addProperty("head_img_media_id", headImgMediaId); + params.addProperty("x1", x1); + params.addProperty("y1", y1); + params.addProperty("x2", x2); + params.addProperty("y2", y2); + String response = wxMaService.post(OPEN_MODIFY_HEADIMAGE, params); + return WxOpenGsonBuilder.create().fromJson(response, WxOpenResult.class); + } + + @Override + public WxOpenResult modifySignature(String signature) throws WxErrorException { + JsonObject params = new JsonObject(); + params.addProperty("signature", signature); + String response = wxMaService.post(OPEN_MODIFY_SIGNATURE, params); + return WxOpenGsonBuilder.create().fromJson(response, WxOpenResult.class); + } + + @Override + public WxOpenResult componentRebindAdmin(String taskid) throws WxErrorException { + JsonObject params = new JsonObject(); + params.addProperty("taskid", taskid); + String response = wxMaService.post(OPEN_COMPONENT_REBIND_ADMIN, params); + return WxOpenGsonBuilder.create().fromJson(response, WxOpenResult.class); + } + + @Override + public String getAllCategories() throws WxErrorException { + return wxMaService.get(OPEN_GET_ALL_CATEGORIES, ""); + } + + @Override + public WxOpenResult addCategory(List
categoryList) throws WxErrorException { + Map map = new HashMap<>(); + map.put("categories", categoryList); + String response = wxMaService.post(OPEN_ADD_CATEGORY, WxOpenGsonBuilder.create().toJson(map)); + return WxOpenGsonBuilder.create().fromJson(response, WxOpenResult.class); + } + + @Override + public WxOpenResult deleteCategory(int first, int second) throws WxErrorException { + JsonObject params = new JsonObject(); + params.addProperty("first", first); + params.addProperty("second", second); + String response = wxMaService.post(OPEN_DELETE_CATEGORY, params); + return WxOpenGsonBuilder.create().fromJson(response, WxOpenResult.class); + } + + @Override + public WxFastMaBeenSetCategoryResult getCategory() throws WxErrorException { + String response = wxMaService.get(OPEN_GET_CATEGORY, ""); + return WxOpenGsonBuilder.create().fromJson(response, WxFastMaBeenSetCategoryResult.class); + } + + @Override + public WxOpenResult modifyCategory(WxFastMaCategory category) throws WxErrorException { + String response = wxMaService.post(OPEN_MODIFY_CATEGORY, category); + return WxOpenGsonBuilder.create().fromJson(response, WxOpenResult.class); + } + + private JsonArray toJsonArray(List strList) { + JsonArray jsonArray = new JsonArray(); + if (strList != null && !strList.isEmpty()) { + for (String str : strList) { + jsonArray.add(str); + } + } + return jsonArray; + } +} 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 24d9e2341..9febf639f 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 @@ -7,8 +7,10 @@ import cn.binarywang.wx.miniapp.config.WxMaConfig; import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import lombok.Getter; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.open.api.WxOpenComponentService; +import me.chanjar.weixin.open.api.WxOpenMaBasicService; import me.chanjar.weixin.open.api.WxOpenMaService; import me.chanjar.weixin.open.bean.ma.WxMaOpenCommitExtInfo; import me.chanjar.weixin.open.bean.ma.WxMaQrcodeParam; @@ -34,11 +36,14 @@ public class WxOpenMaServiceImpl extends WxMaServiceImpl implements WxOpenMaServ private final WxOpenComponentService wxOpenComponentService; private final WxMaConfig wxMaConfig; private final String appId; + @Getter + private final WxOpenMaBasicService basicService; public WxOpenMaServiceImpl(WxOpenComponentService wxOpenComponentService, String appId, WxMaConfig wxMaConfig) { this.wxOpenComponentService = wxOpenComponentService; this.appId = appId; this.wxMaConfig = wxMaConfig; + this.basicService = new WxOpenMaBasicServiceImpl(this); initHttp(); } @@ -247,6 +252,12 @@ public class WxOpenMaServiceImpl extends WxMaServiceImpl implements WxOpenMaServ return WxMaGsonBuilder.create().fromJson(response, WxOpenResult.class); } + @Override + public WxOpenMaHistoryVersionResult getHistoryVersion() throws WxErrorException { + String response = get(API_REVERT_CODE_RELEASE, "action=get_history_version"); + return WxMaGsonBuilder.create().fromJson(response, WxOpenMaHistoryVersionResult.class); + } + @Override public WxOpenResult undoCodeAudit() throws WxErrorException { String response = get(API_UNDO_CODE_AUDIT, null); diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxOpenMaHistoryVersion.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxOpenMaHistoryVersion.java new file mode 100644 index 000000000..6ef41c8be --- /dev/null +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxOpenMaHistoryVersion.java @@ -0,0 +1,34 @@ +package me.chanjar.weixin.open.bean.ma; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import me.chanjar.weixin.open.util.json.WxOpenGsonBuilder; + +import java.io.Serializable; + +/** + * 微信开放平台小程序 可回退的小程序版本 + * + * @author 广州跨界 + */ +@Data +public class WxOpenMaHistoryVersion implements Serializable { + private static final long serialVersionUID = 98923601148793365L; + + @SerializedName("app_version") + private Integer appVersion; + + @SerializedName("user_version") + private String userVersion; + + @SerializedName("user_desc") + private String userDesc; + + @SerializedName("commit_time") + private Integer commitTime; + + @Override + public String toString() { + return WxOpenGsonBuilder.create().toJson(this); + } +} diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenMaHistoryVersionResult.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenMaHistoryVersionResult.java new file mode 100644 index 000000000..61b9f5ddd --- /dev/null +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenMaHistoryVersionResult.java @@ -0,0 +1,29 @@ +package me.chanjar.weixin.open.bean.result; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import me.chanjar.weixin.open.bean.ma.WxOpenMaHistoryVersion; +import me.chanjar.weixin.open.util.json.WxOpenGsonBuilder; + +import java.util.List; + +/** + * 微信开放平台小程序 可回退的小程序版本 返回 + * + * @author 广州跨界 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WxOpenMaHistoryVersionResult extends WxOpenResult { + private static final long serialVersionUID = 4102311851687901079L; + + @SerializedName("template_list") + List templateList; + + @Override + public String toString() { + return WxOpenGsonBuilder.create().toJson(this); + } + +}