mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2026-03-10 00:13:40 +08:00
#932 增加第三方平台快速创建小程序接口及相关的信息设置接口
* Add 接收API创建小程序成功的消息推送
实现快速创建小程序的新建、查询接口
增加WxOpenFastMaService(API创建的小程序专用的接口)
* Add 实现小程序名称设置及改名、微信认证名称检测、修改头像、修改功能介绍接口
* Add 实现所有通过API创建的小程序专属接口及相关结果类
* Add 添加三个复杂实体的单体测试
* Update 修复WxFastMaService 8.1接口:因为不同类目含有特定字段,目前没有完整的类目信息数据,为保证兼容性,放弃将response转换为实体
* Update 将快速创建小程序接口返回值更改为WxOpenResult
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package me.chanjar.weixin.open.bean.fastma;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Hipple
|
||||
* @description 修改更新类目所需实体
|
||||
* @since 2019/1/25 10:49
|
||||
*/
|
||||
@Data
|
||||
public class WxFastMaCategory implements Serializable {
|
||||
|
||||
/**
|
||||
* 一级类目ID
|
||||
*/
|
||||
private int first;
|
||||
|
||||
/**
|
||||
* 二级类目ID
|
||||
*/
|
||||
private int second;
|
||||
|
||||
/**
|
||||
* 资质信息
|
||||
*/
|
||||
private List<certicaty> certicates;
|
||||
|
||||
@Data
|
||||
public class certicaty {
|
||||
private String key;
|
||||
private String value;
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,5 @@
|
||||
package me.chanjar.weixin.open.bean.message;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.Serializable;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
||||
import lombok.Data;
|
||||
@@ -17,6 +10,12 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
|
||||
import me.chanjar.weixin.open.api.WxOpenConfigStorage;
|
||||
import me.chanjar.weixin.open.util.WxOpenCryptUtil;
|
||||
import me.chanjar.weixin.open.util.xml.XStreamTransformer;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.Serializable;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
* @author <a href="https://github.com/007gzs">007</a>
|
||||
@@ -57,6 +56,53 @@ public class WxOpenXmlMessage implements Serializable {
|
||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||
private String preAuthCode;
|
||||
|
||||
// 以下为快速创建小程序接口推送的的信息
|
||||
|
||||
@XStreamAlias ("appid")
|
||||
private String registAppId;
|
||||
|
||||
@XStreamAlias ("status")
|
||||
private int status;
|
||||
|
||||
@XStreamAlias ("auth_code")
|
||||
private String authCode;
|
||||
|
||||
@XStreamAlias ("msg")
|
||||
@XStreamConverter (value = XStreamCDataConverter.class)
|
||||
private String msg;
|
||||
|
||||
@XStreamAlias ("info")
|
||||
private Info info = new Info();
|
||||
|
||||
@XStreamAlias ("info")
|
||||
@Data
|
||||
public static class Info implements Serializable {
|
||||
private static final long serialVersionUID = 7706235740094081194L;
|
||||
|
||||
@XStreamAlias ("name")
|
||||
@XStreamConverter (value = XStreamCDataConverter.class)
|
||||
private String name;
|
||||
|
||||
@XStreamAlias ("code")
|
||||
@XStreamConverter (value = XStreamCDataConverter.class)
|
||||
private String code;
|
||||
|
||||
@XStreamAlias ("code_type")
|
||||
private int codeType;
|
||||
|
||||
@XStreamAlias ("legal_persona_wechat")
|
||||
@XStreamConverter (value = XStreamCDataConverter.class)
|
||||
private String legalPersonaWechat;
|
||||
|
||||
@XStreamAlias ("legal_persona_name")
|
||||
@XStreamConverter (value = XStreamCDataConverter.class)
|
||||
private String legalPersonaName;
|
||||
|
||||
@XStreamAlias ("component_phone")
|
||||
@XStreamConverter (value = XStreamCDataConverter.class)
|
||||
private String componentPhone;
|
||||
}
|
||||
|
||||
public static String wxMpOutXmlMessageToEncryptedXml(WxMpXmlOutMessage message, WxOpenConfigStorage wxOpenConfigStorage) {
|
||||
String plainXml = message.toXml();
|
||||
WxOpenCryptUtil pc = new WxOpenCryptUtil(wxOpenConfigStorage);
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
package me.chanjar.weixin.open.bean.result;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author Hipple
|
||||
* @description 快速创建的小程序的账号基本信息
|
||||
* @since 2019/1/23 14:39
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode (callSuper = true)
|
||||
public class WxFastMaAccountBasicInfoResult extends WxOpenResult{
|
||||
private static final long serialVersionUID = - 8713680081353954208L;
|
||||
|
||||
/**
|
||||
* 小程序ID
|
||||
*/
|
||||
@SerializedName ("appid")
|
||||
private String appId;
|
||||
|
||||
/**
|
||||
* 帐号类型(1:订阅号,2:服务号,3:小程序)
|
||||
*/
|
||||
@SerializedName ("account_type")
|
||||
private Integer accountType;
|
||||
|
||||
/**
|
||||
* 主体类型(1:企业)
|
||||
*/
|
||||
@SerializedName ("principal_type")
|
||||
private Integer principalType;
|
||||
|
||||
/**
|
||||
* 主体名称
|
||||
*/
|
||||
@SerializedName ("principal_name")
|
||||
private String principalName;
|
||||
|
||||
/**
|
||||
* 实名验证状态(1:实名验证成功,2:实名验证中,3:实名验证失败)调用接口1.1创建帐号时,realname_status会初始化为2对于注册方式为微信认证的帐号,资质认证成功时,realname_status会更新为1 注意!!!当realname_status不为1时,帐号只允许调用本文档内的以下API:(即无权限调用其他API) 微信认证相关接口(参考2.x) 帐号设置相关接口(参考3.x)
|
||||
*/
|
||||
@SerializedName ("realname_status")
|
||||
private Integer realnameStatus;
|
||||
|
||||
|
||||
/**
|
||||
* 微信认证信息
|
||||
*/
|
||||
@SerializedName ("wx_verify_info")
|
||||
private WxVerifyInfo wxVerifyInfo;
|
||||
/**
|
||||
* 功能介绍信息
|
||||
*/
|
||||
@SerializedName ("signature_info")
|
||||
private SignatureInfo signatureInfo;
|
||||
/**
|
||||
* 头像信息
|
||||
*/
|
||||
@SerializedName ("head_image_info")
|
||||
private HeadImageInfo headImageInfo;
|
||||
|
||||
@Data
|
||||
public static class WxVerifyInfo {
|
||||
/**
|
||||
* 是否资质认证(true:是,false:否)若是,拥有微信认证相关的权限
|
||||
*/
|
||||
@SerializedName ("qualification_verify")
|
||||
private Boolean qualificationVerify;
|
||||
/**
|
||||
* 是否名称认证(true:是,false:否)对于公众号(订阅号、服务号),是名称认证,微信客户端才会有微信认证打勾的标识。
|
||||
*/
|
||||
@SerializedName ("naming_verify")
|
||||
private Boolean namingVerify;
|
||||
/**
|
||||
* 是否需要年审(true:是,false:否)(qualification_verify = true时才有该字段)
|
||||
*/
|
||||
@SerializedName ("annual_review")
|
||||
private Boolean annualReview;
|
||||
|
||||
/**
|
||||
* 年审开始时间,时间戳(qualification_verify = true时才有该字段)
|
||||
*/
|
||||
@SerializedName ("annual_review_begin_time")
|
||||
private String annualReviewBeginTime;
|
||||
|
||||
/**
|
||||
* 年审截止时间,时间戳(qualification_verify = true时才有该字段)
|
||||
*/
|
||||
@SerializedName ("annual_review_end_time")
|
||||
private String annualReviewEndTime;
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
public static class SignatureInfo {
|
||||
/**
|
||||
* 功能介绍
|
||||
*/
|
||||
@SerializedName ("signature")
|
||||
private String signature;
|
||||
/**
|
||||
* 头像已使用修改次数(本月)
|
||||
*/
|
||||
@SerializedName ("modify_used_count")
|
||||
private Integer modifyUsedCount;
|
||||
/**
|
||||
* 头像修改次数总额度(本月)
|
||||
*/
|
||||
@SerializedName ("modify_quota")
|
||||
private Integer modifyQuota;
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
public static class HeadImageInfo {
|
||||
/**
|
||||
* 头像url
|
||||
*/
|
||||
@SerializedName ("head_image_url")
|
||||
private String headImageUrl;
|
||||
/**
|
||||
* 头像已使用修改次数(本月)
|
||||
*/
|
||||
@SerializedName ("modify_used_count")
|
||||
private Integer modifyUsedCount;
|
||||
|
||||
/**
|
||||
* 头像修改次数总额度(本月)
|
||||
*/
|
||||
@SerializedName ("modify_quota")
|
||||
private Integer modifyQuota;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package me.chanjar.weixin.open.bean.result;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Hipple
|
||||
* @description 获取小程序已经设置的类目结果类
|
||||
* @since 2019/1/26 18:27
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode (callSuper = true)
|
||||
public class WxFastMaBeenSetCategoryResult extends WxOpenResult {
|
||||
private static final long serialVersionUID = - 7662344448437700644L;
|
||||
|
||||
/**
|
||||
* 一个更改周期内可以设置类目的次数
|
||||
*/
|
||||
@SerializedName ("limit")
|
||||
private int limit;
|
||||
/**
|
||||
* 本更改周期内还可以设置类目的次数
|
||||
*/
|
||||
@SerializedName ("quota")
|
||||
private int quota;
|
||||
/**
|
||||
* 最多可以设置的类目数量
|
||||
*/
|
||||
@SerializedName ("category_limit")
|
||||
private int categoryLimit;
|
||||
/**
|
||||
* 类目
|
||||
*/
|
||||
@SerializedName ("categories")
|
||||
private List<CategoriesBean> categories;
|
||||
|
||||
@Data
|
||||
public static class CategoriesBean {
|
||||
/**
|
||||
* 一级类目ID
|
||||
*/
|
||||
@SerializedName ("first")
|
||||
private int first;
|
||||
/**
|
||||
* 一级类目名称
|
||||
*/
|
||||
@SerializedName ("first_name")
|
||||
private String firstName;
|
||||
/**
|
||||
* 二级类目ID
|
||||
*/
|
||||
@SerializedName ("second")
|
||||
private int second;
|
||||
/**
|
||||
* 二级类目名称
|
||||
*/
|
||||
@SerializedName ("second_name")
|
||||
private String secondName;
|
||||
/**
|
||||
* 审核状态(1审核中 2审核不通过 3审核通过)
|
||||
*/
|
||||
@SerializedName ("audit_status")
|
||||
private int auditStatus;
|
||||
/**
|
||||
* 审核不通过原因
|
||||
*/
|
||||
@SerializedName ("audit_reason")
|
||||
private String auditReason;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package me.chanjar.weixin.open.bean.result;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Hipple
|
||||
* @description 获取账号所有可以设置的类目
|
||||
* @since 2019/1/26 18:43
|
||||
*/
|
||||
@Data
|
||||
public class WxFastMaCanSetCategoryResult extends WxOpenResult {
|
||||
private static final long serialVersionUID = - 2469386233538980102L;
|
||||
@SerializedName ("errcode")
|
||||
private int errcodeX;
|
||||
@SerializedName ("categories_list")
|
||||
private CategoriesListBean categoriesList;
|
||||
|
||||
@Data
|
||||
public static class CategoriesListBean {
|
||||
private List<CategoriesBean> categories;
|
||||
@Data
|
||||
public static class CategoriesBean {
|
||||
private int id;
|
||||
private QualifyBean qualify;
|
||||
private String name;
|
||||
private int level;
|
||||
private int father;
|
||||
@SerializedName ("sensitive_type")
|
||||
private int sensitiveType;
|
||||
@SerializedName ("available_for_plugin")
|
||||
private boolean availableForPlugin;
|
||||
@SerializedName ("is_hidden")
|
||||
private boolean isHidden;
|
||||
private String type;
|
||||
@SerializedName ("need_report")
|
||||
private int needReport;
|
||||
@SerializedName ("can_use_cityserivce")
|
||||
private int canUseCityserivce;
|
||||
private List<Integer> children;
|
||||
@SerializedName ("type_list")
|
||||
private List<?> typeList;
|
||||
@SerializedName ("available_api_list")
|
||||
private List<?> availableApiList;
|
||||
private List<?> apis;
|
||||
|
||||
@Data
|
||||
public static class QualifyBean {
|
||||
private String remark;
|
||||
@SerializedName ("exter_list")
|
||||
private List<?> exterList;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package me.chanjar.weixin.open.bean.result;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author Hipple
|
||||
* @description 微信认证名称检测结果类
|
||||
* @since 2019/1/26 17:39
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode (callSuper = true)
|
||||
public class WxFastMaCheckNickameResult extends WxOpenResult {
|
||||
private static final long serialVersionUID = 8022192589710319473L;
|
||||
|
||||
/**
|
||||
* 审核编号.
|
||||
*/
|
||||
@SerializedName ("hit_condition")
|
||||
boolean hitCondition;
|
||||
|
||||
/**
|
||||
* 材料说明
|
||||
*/
|
||||
@SerializedName ("wording")
|
||||
String wording;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package me.chanjar.weixin.open.bean.result;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author Hipple
|
||||
* @description 查询改名状态实体类
|
||||
* @since 2019/1/26 17:52
|
||||
*/
|
||||
@EqualsAndHashCode (callSuper = true)
|
||||
@Data
|
||||
public class WxFastMaQueryNicknameStatusResult extends WxOpenResult {
|
||||
|
||||
private static final long serialVersionUID = 8492116046290791757L;
|
||||
|
||||
/**
|
||||
* 审核昵称
|
||||
*/
|
||||
@SerializedName ("nickname")
|
||||
private String nickname;
|
||||
/**
|
||||
* 审核状态,1:审核中,2:审核失败,3:审核成功
|
||||
*/
|
||||
@SerializedName ("audit_stat")
|
||||
private int auditStat;
|
||||
/**
|
||||
* 失败原因
|
||||
*/
|
||||
@SerializedName ("fail_reason")
|
||||
private String failReason;
|
||||
/**
|
||||
* 审核提交时间
|
||||
*/
|
||||
@SerializedName ("create_time")
|
||||
private String createTime;
|
||||
/**
|
||||
* 审核提交时间
|
||||
*/
|
||||
@SerializedName ("audit_time")
|
||||
private String auditTime;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package me.chanjar.weixin.open.bean.result;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author Hipple
|
||||
* @description 设置小程序名称结果类
|
||||
* @since 2019/1/26 17:39
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode (callSuper = true)
|
||||
public class WxFastMaSetNickameResult extends WxOpenResult {
|
||||
private static final long serialVersionUID = 8022192589710319473L;
|
||||
|
||||
/**
|
||||
* 审核编号.
|
||||
*/
|
||||
@SerializedName ("audit_id")
|
||||
Long auditId;
|
||||
|
||||
/**
|
||||
* 材料说明
|
||||
*/
|
||||
@SerializedName ("wording")
|
||||
String wording;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user