mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-21 19:17:39 +08:00
#739 增加微信激活会员卡时需要用的设置用户资料的接口
* 增加微信激活会员卡,设置用户资料字段接口实现。 * 增加创建卡券二维码的失效时间参数接口。 * 设置对象返回类型。 * 增加卡券相关事件及xml消息解析
This commit is contained in:
@@ -181,6 +181,76 @@ public class WxConsts {
|
||||
* 微信小店 订单付款通知.
|
||||
*/
|
||||
public static final String MERCHANT_ORDER = "merchant_order";
|
||||
|
||||
/**
|
||||
* 卡券事件:卡券通过审核
|
||||
*/
|
||||
public static final String CARD_PASS_CHECK = "card_pass_check";
|
||||
|
||||
/**
|
||||
* 卡券事件:卡券未通过审核
|
||||
*/
|
||||
public static final String CARD_NOT_PASS_CHECK = "card_not_pass_check";
|
||||
|
||||
/**
|
||||
* 卡券事件:用户领取卡券
|
||||
*/
|
||||
public static final String CARD_USER_GET_CARD = "user_get_card";
|
||||
|
||||
/**
|
||||
* 卡券事件:用户转赠卡券
|
||||
*/
|
||||
public static final String CARD_USER_GIFTING_CARD = "user_gifting_card";
|
||||
|
||||
|
||||
/**
|
||||
* 卡券事件:用户核销卡券
|
||||
*/
|
||||
public static final String CARD_USER_CONSUME_CARD = "user_consume_card";
|
||||
|
||||
|
||||
/**
|
||||
* 卡券事件:用户通过卡券的微信买单完成时推送
|
||||
*/
|
||||
public static final String CARD_USER_PAY_FROM_PAY_CELL = "user_pay_from_pay_cell";
|
||||
|
||||
|
||||
/**
|
||||
* 卡券事件:用户提交会员卡开卡信息
|
||||
*/
|
||||
public static final String CARD_SUBMIT_MEMBERCARD_USER_INFO = "submit_membercard_user_info";
|
||||
|
||||
/**
|
||||
* 卡券事件:用户打开查看卡券
|
||||
*/
|
||||
public static final String CARD_USER_VIEW_CARD = "user_view_card";
|
||||
|
||||
/**
|
||||
* 卡券事件:用户删除卡券
|
||||
*/
|
||||
public static final String CARD_USER_DEL_CARD = "user_del_card";
|
||||
|
||||
/**
|
||||
* 卡券事件:用户在卡券里点击查看公众号进入会话时(需要用户已经关注公众号)
|
||||
*/
|
||||
public static final String CARD_USER_ENTER_SESSION_FROM_CARD = "user_enter_session_from_card";
|
||||
|
||||
/**
|
||||
* 卡券事件:当用户的会员卡积分余额发生变动时
|
||||
*/
|
||||
public static final String CARD_UPDATE_MEMBER_CARD = "update_member_card";
|
||||
|
||||
/**
|
||||
* 卡券事件:当某个card_id的初始库存数大于200且当前库存小于等于100时,用户尝试领券会触发发送事件给商户,事件每隔12h发送一次
|
||||
*/
|
||||
public static final String CARD_SKU_REMIND = "card_sku_remind";
|
||||
|
||||
/**
|
||||
* 卡券事件:当商户朋友的券券点发生变动时
|
||||
*/
|
||||
public static final String CARD_PAY_ORDER = "card_pay_order";
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -280,4 +350,5 @@ public class WxConsts {
|
||||
public static final String IMAGE = "image";
|
||||
public static final String VIDEO = "video";
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -145,6 +145,15 @@ public interface WxMpCardService {
|
||||
*/
|
||||
WxMpCardQrcodeCreateResult createQrcodeCard(String cardId, String outerStr) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* 创建卡券二维码
|
||||
* @param cardId 卡券编号
|
||||
* @param outerStr 二维码标识
|
||||
* @param expiresIn 失效时间,单位秒,不填默认365天
|
||||
* @return WxMpCardQrcodeCreateResult
|
||||
*/
|
||||
WxMpCardQrcodeCreateResult createQrcodeCard(String cardId, String outerStr,int expiresIn) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* 创建卡券货架
|
||||
* @param createRequest 货架创建参数
|
||||
|
@@ -1,17 +1,28 @@
|
||||
package me.chanjar.weixin.mp.api;
|
||||
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.mp.bean.card.MemberCardActivateUserFormRequest;
|
||||
import me.chanjar.weixin.mp.bean.card.MemberCardActivateUserFormResult;
|
||||
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateResult;
|
||||
import me.chanjar.weixin.mp.bean.card.WxMpCardQrcodeCreateResult;
|
||||
import me.chanjar.weixin.mp.bean.membercard.*;
|
||||
|
||||
/**
|
||||
* 会员卡相关接口
|
||||
*
|
||||
* @author YuJian(mgcnrx11 @ gmail.com)
|
||||
* @author yuanqixun
|
||||
* @version 2017/7/8
|
||||
* @date 2018-08-30
|
||||
*/
|
||||
public interface WxMpMemberCardService {
|
||||
String MEMBER_CARD_CREAET = "https://api.weixin.qq.com/card/create";
|
||||
String MEMBER_CARD_ACTIVATE = "https://api.weixin.qq.com/card/membercard/activate";
|
||||
String MEMBER_CARD_USER_INFO_GET = "https://api.weixin.qq.com/card/membercard/userinfo/get";
|
||||
String MEMBER_CARD_UPDATE_USER = "https://api.weixin.qq.com/card/membercard/updateuser";
|
||||
/**
|
||||
* 会员卡激活之微信开卡接口(wx_activate=true情况调用)
|
||||
*/
|
||||
String MEMBER_CARD_ACTIVATEUSERFORM = "https://api.weixin.qq.com/card/membercard/activateuserform/set";
|
||||
|
||||
/**
|
||||
* 得到WxMpService
|
||||
@@ -20,6 +31,7 @@ public interface WxMpMemberCardService {
|
||||
|
||||
/**
|
||||
* 会员卡创建接口
|
||||
*
|
||||
* @param createJson
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
@@ -28,6 +40,7 @@ public interface WxMpMemberCardService {
|
||||
|
||||
/**
|
||||
* 会员卡创建接口
|
||||
*
|
||||
* @param createMessageMessage
|
||||
* @return WxMpCardCreateResult
|
||||
* @throws WxErrorException
|
||||
@@ -55,7 +68,7 @@ public interface WxMpMemberCardService {
|
||||
|
||||
/**
|
||||
* 当会员持卡消费后,支持开发者调用该接口更新会员信息。会员卡交易后的每次信息变更需通过该接口通知微信,便于后续消息通知及其他扩展功能。
|
||||
*
|
||||
* <p>
|
||||
* 1.开发者可以同时传入add_bonus和bonus解决由于同步失败带来的幂等性问题。同时传入add_bonus和bonus时
|
||||
* add_bonus作为积分变动消息中的变量值,而bonus作为卡面上的总积分额度显示。余额变动同理。
|
||||
* 2.开发者可以传入is_notify_bonus控制特殊的积分对账变动不发送消息,余额变动同理。
|
||||
@@ -66,4 +79,13 @@ public interface WxMpMemberCardService {
|
||||
*/
|
||||
WxMpMemberCardUpdateResult updateUserMemberCard(WxMpMemberCardUpdateMessage updateUserMessage) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* 设置会员卡激活的字段(会员卡设置:wx_activate=true 时需要)
|
||||
*
|
||||
* @param userFormRequest
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
MemberCardActivateUserFormResult setActivateUserForm(MemberCardActivateUserFormRequest userFormRequest) throws WxErrorException;
|
||||
|
||||
}
|
||||
|
@@ -256,14 +256,29 @@ public class WxMpCardServiceImpl implements WxMpCardService {
|
||||
|
||||
/**
|
||||
* 创建卡券二维码
|
||||
*
|
||||
* @param cardId
|
||||
* @param outerStr
|
||||
* @return
|
||||
*/
|
||||
public WxMpCardQrcodeCreateResult createQrcodeCard(String cardId, String outerStr) throws WxErrorException {
|
||||
return createQrcodeCard(cardId, outerStr, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建卡券二维码
|
||||
* @param cardId 卡券编号
|
||||
* @param outerStr 二维码标识
|
||||
* @param expiresIn 失效时间,单位秒,不填默认365天
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
public WxMpCardQrcodeCreateResult createQrcodeCard(String cardId, String outerStr, int expiresIn) throws WxErrorException {
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
jsonObject.addProperty("action_name", "QR_CARD");
|
||||
jsonObject.addProperty("expire_seconds", 1800);
|
||||
if (expiresIn > 0) {
|
||||
jsonObject.addProperty("expire_seconds", expiresIn);
|
||||
}
|
||||
JsonObject actionInfoJson = new JsonObject();
|
||||
JsonObject cardJson = new JsonObject();
|
||||
cardJson.addProperty("card_id", cardId);
|
||||
@@ -276,6 +291,7 @@ public class WxMpCardServiceImpl implements WxMpCardService {
|
||||
|
||||
/**
|
||||
* 创建卡券货架接口
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
|
@@ -1,12 +1,18 @@
|
||||
package me.chanjar.weixin.mp.api.impl;
|
||||
|
||||
import com.google.gson.*;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
|
||||
import me.chanjar.weixin.mp.api.WxMpMemberCardService;
|
||||
import me.chanjar.weixin.mp.api.WxMpService;
|
||||
import me.chanjar.weixin.mp.bean.card.*;
|
||||
import me.chanjar.weixin.mp.bean.card.enums.BusinessServiceType;
|
||||
import me.chanjar.weixin.mp.bean.card.enums.CardColor;
|
||||
import me.chanjar.weixin.mp.bean.card.enums.DateInfoType;
|
||||
import me.chanjar.weixin.mp.bean.membercard.*;
|
||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -23,11 +29,6 @@ public class WxMpMemberCardServiceImpl implements WxMpMemberCardService {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(WxMpMemberCardServiceImpl.class);
|
||||
|
||||
private static final String MEMBER_CARD_CREAET = "https://api.weixin.qq.com/card/create";
|
||||
private static final String MEMBER_CARD_ACTIVATE = "https://api.weixin.qq.com/card/membercard/activate";
|
||||
private static final String MEMBER_CARD_USER_INFO_GET = "https://api.weixin.qq.com/card/membercard/userinfo/get";
|
||||
private static final String MEMBER_CARD_UPDATE_USER = "https://api.weixin.qq.com/card/membercard/updateuser";
|
||||
|
||||
private WxMpService wxMpService;
|
||||
|
||||
private static final Gson GSON = new Gson();
|
||||
@@ -265,4 +266,17 @@ public class WxMpMemberCardServiceImpl implements WxMpMemberCardService {
|
||||
}.getType());
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置会员卡激活的字段(会员卡设置:wx_activate=true 时需要)
|
||||
*
|
||||
* @param userFormRequest
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
@Override
|
||||
public MemberCardActivateUserFormResult setActivateUserForm(MemberCardActivateUserFormRequest userFormRequest) throws WxErrorException {
|
||||
String responseContent = this.getWxMpService().post(MEMBER_CARD_ACTIVATEUSERFORM, GSON.toJson(userFormRequest));
|
||||
return MemberCardActivateUserFormResult.fromJson(responseContent);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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;
|
||||
|
||||
|
||||
///////////////////////////////////////
|
||||
// 门店审核事件推送
|
||||
///////////////////////////////////////
|
||||
|
@@ -5,6 +5,7 @@ import me.chanjar.weixin.mp.api.WxMpCardService;
|
||||
import me.chanjar.weixin.mp.api.WxMpService;
|
||||
import me.chanjar.weixin.mp.api.test.ApiTestModule;
|
||||
import me.chanjar.weixin.mp.bean.card.*;
|
||||
import me.chanjar.weixin.mp.bean.card.enums.CardSceneType;
|
||||
import me.chanjar.weixin.mp.bean.membercard.*;
|
||||
import org.testng.annotations.Guice;
|
||||
import org.testng.annotations.Test;
|
||||
|
Reference in New Issue
Block a user