#932 增加第三方平台快速创建小程序接口及相关的信息设置接口

* Add 接收API创建小程序成功的消息推送
     实现快速创建小程序的新建、查询接口
     增加WxOpenFastMaService(API创建的小程序专用的接口)

* Add 实现小程序名称设置及改名、微信认证名称检测、修改头像、修改功能介绍接口

* Add 实现所有通过API创建的小程序专属接口及相关结果类

* Add 添加三个复杂实体的单体测试

* Update 修复WxFastMaService 8.1接口:因为不同类目含有特定字段,目前没有完整的类目信息数据,为保证兼容性,放弃将response转换为实体

* Update 将快速创建小程序接口返回值更改为WxOpenResult
This commit is contained in:
Hipple
2019-01-27 15:18:47 +08:00
committed by Binary Wang
parent cf549eaed3
commit 014fb28354
20 changed files with 1247 additions and 12 deletions

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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 {
/**
* 是否资质认证truefalse若是拥有微信认证相关的权限
*/
@SerializedName ("qualification_verify")
private Boolean qualificationVerify;
/**
* 是否名称认证truefalse对于公众号订阅号、服务号是名称认证微信客户端才会有微信认证打勾的标识。
*/
@SerializedName ("naming_verify")
private Boolean namingVerify;
/**
* 是否需要年审truefalsequalification_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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}