mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2026-03-10 00:13:40 +08:00
#739 增加微信激活会员卡时需要用的设置用户资料的接口
* 增加微信激活会员卡,设置用户资料字段接口实现。 * 增加创建卡券二维码的失效时间参数接口。 * 设置对象返回类型。 * 增加卡券相关事件及xml消息解析
This commit is contained in:
@@ -2,6 +2,7 @@ package me.chanjar.weixin.mp.bean.card;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.mp.bean.card.enums.BusinessServiceType;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package me.chanjar.weixin.mp.bean.card;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 会员卡激活,用户字段提交请求
|
||||
*
|
||||
* @author yuanqixun
|
||||
* @date 2018-08-30
|
||||
*/
|
||||
@Data
|
||||
public class MemberCardActivateUserFormRequest implements Serializable {
|
||||
@SerializedName("card_id")
|
||||
private String cardId;
|
||||
|
||||
@SerializedName("service_statement")
|
||||
private JsonObject serviceStatement;
|
||||
|
||||
@SerializedName("bind_old_card")
|
||||
private JsonObject bindOldCard;
|
||||
|
||||
/**
|
||||
* 必填项
|
||||
*/
|
||||
@SerializedName("required_form")
|
||||
private MemberCardUserForm requiredForm;
|
||||
|
||||
/**
|
||||
* 可选项
|
||||
*/
|
||||
@SerializedName("optional_form")
|
||||
private MemberCardUserForm optionalForm;
|
||||
|
||||
/**
|
||||
* 绑定老会员卡信息
|
||||
*
|
||||
* @param name
|
||||
* @param url
|
||||
*/
|
||||
public void setBindOldCard(String name, String url) {
|
||||
if (StringUtils.isAnyEmpty(name, url)) {
|
||||
return;
|
||||
}
|
||||
if (bindOldCard == null)
|
||||
bindOldCard = new JsonObject();
|
||||
bindOldCard.addProperty("name", name);
|
||||
bindOldCard.addProperty("url", url);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置服务声明,用于放置商户会员卡守则
|
||||
*
|
||||
* @param name
|
||||
* @param url
|
||||
*/
|
||||
public void setServiceStatement(String name, String url) {
|
||||
if (StringUtils.isAnyEmpty(name, url)) {
|
||||
return;
|
||||
}
|
||||
if (serviceStatement == null)
|
||||
serviceStatement = new JsonObject();
|
||||
serviceStatement.addProperty("name", name);
|
||||
serviceStatement.addProperty("url", url);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package me.chanjar.weixin.mp.bean.card;
|
||||
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class MemberCardActivateUserFormResult implements Serializable {
|
||||
private Integer errcode;
|
||||
private String errmsg;
|
||||
|
||||
public boolean isSuccess() {
|
||||
return 0 == errcode;
|
||||
}
|
||||
|
||||
public static MemberCardActivateUserFormResult fromJson(String json) {
|
||||
return WxMpGsonBuilder.create().fromJson(json, MemberCardActivateUserFormResult.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
package me.chanjar.weixin.mp.bean.card;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.mp.bean.card.enums.CardWechatFieldType;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户表单对象
|
||||
*
|
||||
* @author yuanqixun
|
||||
* @date 2018-08-30
|
||||
*/
|
||||
@Data
|
||||
public class MemberCardUserForm implements Serializable {
|
||||
|
||||
/**
|
||||
* 当前结构(required_form或者optional_form )内的字段是否允许用户激活后再次修改,
|
||||
* 商户设置为true 时,需要接收相应事件通知处理修改事件
|
||||
*/
|
||||
@SerializedName("can_modify")
|
||||
private boolean canModify;
|
||||
|
||||
/**
|
||||
* 富文本类型字段列表
|
||||
*/
|
||||
@SerializedName("rich_field_list")
|
||||
List<MemberCardUserFormRichField> richFieldList;
|
||||
|
||||
/**
|
||||
* 文本选项类型列表
|
||||
*/
|
||||
@SerializedName("custom_field_list")
|
||||
private List<String> customFieldList;
|
||||
|
||||
|
||||
/**
|
||||
* 微信格式化的选项类型
|
||||
*/
|
||||
@SerializedName("common_field_id_list")
|
||||
private List<String> wechatFieldIdList;
|
||||
|
||||
/**
|
||||
* 添加富文本类型字段
|
||||
*
|
||||
* @param fieldType
|
||||
*/
|
||||
public void addRichField(MemberCardUserFormRichField field) {
|
||||
if (field == null)
|
||||
return;
|
||||
if (richFieldList == null)
|
||||
richFieldList = new ArrayList<>();
|
||||
richFieldList.add(field);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加微信选项类型字段
|
||||
*
|
||||
* @param fieldType
|
||||
*/
|
||||
public void addWechatField(CardWechatFieldType fieldType) {
|
||||
if (fieldType == null)
|
||||
return;
|
||||
if (wechatFieldIdList == null)
|
||||
wechatFieldIdList = new ArrayList<>();
|
||||
wechatFieldIdList.add(fieldType.name());
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加文本类型字段
|
||||
*
|
||||
* @param fieldType
|
||||
*/
|
||||
public void addCustomField(String field) {
|
||||
if (StringUtils.isBlank(field))
|
||||
return;
|
||||
if (customFieldList == null)
|
||||
customFieldList = new ArrayList<>();
|
||||
customFieldList.add(field);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package me.chanjar.weixin.mp.bean.card;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.mp.bean.card.enums.CardRichFieldType;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 富文本字段
|
||||
*
|
||||
* @author yuanqixun
|
||||
* @date 2018-08-30
|
||||
*/
|
||||
@Data
|
||||
public class MemberCardUserFormRichField {
|
||||
|
||||
/**
|
||||
* 富文本类型
|
||||
*/
|
||||
@SerializedName("type")
|
||||
private CardRichFieldType type;
|
||||
|
||||
@SerializedName("name")
|
||||
private String name;
|
||||
|
||||
@SerializedName("values")
|
||||
private List<String> valueList;
|
||||
|
||||
public void add(String value) {
|
||||
if (valueList == null)
|
||||
valueList = new ArrayList<String>();
|
||||
valueList.add(value);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package me.chanjar.weixin.mp.bean.card;
|
||||
package me.chanjar.weixin.mp.bean.card.enums;
|
||||
|
||||
/**
|
||||
* 商户提供服务类型
|
||||
@@ -1,4 +1,4 @@
|
||||
package me.chanjar.weixin.mp.bean.card;
|
||||
package me.chanjar.weixin.mp.bean.card.enums;
|
||||
|
||||
/**
|
||||
* 会员卡颜色
|
||||
@@ -0,0 +1,23 @@
|
||||
package me.chanjar.weixin.mp.bean.card.enums;
|
||||
|
||||
/**
|
||||
* 微信卡券激活字段类型
|
||||
*
|
||||
* @author yuanqixun
|
||||
* @date 2018-08-30
|
||||
*/
|
||||
public enum CardFieldType {
|
||||
COMMON_FIELD("微信选项"),
|
||||
CUSTOM_FIELD("自定义选项"),
|
||||
RICH_FIELD("自定义富文本类型");
|
||||
|
||||
private String description;
|
||||
|
||||
CardFieldType(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package me.chanjar.weixin.mp.bean.card.enums;
|
||||
|
||||
/**
|
||||
* 会员卡富文本字段类型
|
||||
*
|
||||
* @author yuanqixun
|
||||
* @date 2018-08-30
|
||||
*/
|
||||
public enum CardRichFieldType {
|
||||
FORM_FIELD_RADIO("自定义单选"),
|
||||
FORM_FIELD_SELECT("自定义选择项"),
|
||||
FORM_FIELD_CHECK_BOX("自定义多选");
|
||||
|
||||
private String description;
|
||||
|
||||
CardRichFieldType(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package me.chanjar.weixin.mp.bean.card;
|
||||
package me.chanjar.weixin.mp.bean.card.enums;
|
||||
|
||||
public enum CardSceneType {
|
||||
SCENE_NEAR_BY("附近"),
|
||||
@@ -0,0 +1,31 @@
|
||||
package me.chanjar.weixin.mp.bean.card.enums;
|
||||
|
||||
/**
|
||||
* 微信卡券激活字段类型
|
||||
*
|
||||
* @author yuanqixun
|
||||
* @date 2018-08-30
|
||||
*/
|
||||
public enum CardWechatFieldType {
|
||||
USER_FORM_INFO_FLAG_MOBILE("手机号"),
|
||||
USER_FORM_INFO_FLAG_SEX("性别"),
|
||||
USER_FORM_INFO_FLAG_NAME("姓名"),
|
||||
USER_FORM_INFO_FLAG_BIRTHDAY("生日"),
|
||||
USER_FORM_INFO_FLAG_IDCARD("身份证"),
|
||||
USER_FORM_INFO_FLAG_EMAIL("邮箱"),
|
||||
USER_FORM_INFO_FLAG_LOCATION("详细地址"),
|
||||
USER_FORM_INFO_FLAG_EDUCATION_BACKGRO("教育背景"),
|
||||
USER_FORM_INFO_FLAG_INDUSTRY("行业"),
|
||||
USER_FORM_INFO_FLAG_INCOME("收入"),
|
||||
USER_FORM_INFO_FLAG_HABIT("兴趣爱好");
|
||||
|
||||
private String description;
|
||||
|
||||
CardWechatFieldType(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package me.chanjar.weixin.mp.bean.card;
|
||||
package me.chanjar.weixin.mp.bean.card.enums;
|
||||
|
||||
public enum DateInfoType {
|
||||
DATE_TYPE_PERMANENT("永久有效类型"),
|
||||
@@ -342,6 +342,82 @@ public class WxMpXmlMessage implements Serializable {
|
||||
@XStreamAlias("SendLocationInfo")
|
||||
private SendLocationInfo sendLocationInfo = new SendLocationInfo();
|
||||
|
||||
/**
|
||||
* 审核不通过原因
|
||||
*/
|
||||
@XStreamAlias("RefuseReason")
|
||||
private String refuseReason;
|
||||
|
||||
/**
|
||||
* 是否为朋友推荐,0代表否,1代表是
|
||||
*/
|
||||
@XStreamAlias("IsRecommendByFriend")
|
||||
private String isRecommendByFriend;
|
||||
|
||||
/**
|
||||
* 购买券点时,实际支付成功的时间
|
||||
*/
|
||||
@XStreamAlias("PayFinishTime")
|
||||
private String payFinishTime;
|
||||
|
||||
/**
|
||||
* 购买券点时,支付二维码的生成时间
|
||||
*/
|
||||
@XStreamAlias("CreateOrderTime")
|
||||
private String createOrderTime;
|
||||
|
||||
/**
|
||||
* 购买券点时,支付二维码的生成时间
|
||||
*/
|
||||
@XStreamAlias("Desc")
|
||||
private String desc;
|
||||
|
||||
/**
|
||||
* 剩余免费券点数量
|
||||
*/
|
||||
@XStreamAlias("FreeCoinCount")
|
||||
private String freeCoinCount;
|
||||
|
||||
/**
|
||||
* 剩余付费券点数量
|
||||
*/
|
||||
@XStreamAlias("PayCoinCount")
|
||||
private String payCoinCount;
|
||||
|
||||
/**
|
||||
* 本次变动的免费券点数量
|
||||
*/
|
||||
@XStreamAlias("RefundFreeCoinCount")
|
||||
private String refundFreeCoinCount;
|
||||
|
||||
/**
|
||||
* 本次变动的付费券点数量
|
||||
*/
|
||||
@XStreamAlias("RefundPayCoinCount")
|
||||
private String refundPayCoinCount;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 所要拉取的订单类型 ORDER_TYPE_SYS_ADD 平台赠送券点 ORDER_TYPE_WXPAY 充值券点 ORDER_TYPE_REFUND 库存未使用回退券点
|
||||
* ORDER_TYPE_REDUCE 券点兑换库存 ORDER_TYPE_SYS_REDUCE 平台扣减
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("OrderType")
|
||||
private String orderType;
|
||||
|
||||
/**
|
||||
* 系统备注,说明此次变动的缘由,如开通账户奖励、门店奖励、核销奖励以及充值、扣减。
|
||||
*/
|
||||
@XStreamAlias("Memo")
|
||||
private String memo;
|
||||
|
||||
/**
|
||||
* 所开发票的详情
|
||||
*/
|
||||
@XStreamAlias("ReceiptInfo")
|
||||
private String receiptInfo;
|
||||
|
||||
|
||||
///////////////////////////////////////
|
||||
// 门店审核事件推送
|
||||
///////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user