Skip to content

Commit 556b073

Browse files
yuanqixunbinarywang
authored andcommitted
binarywang#841 增加会员卡更新接口
1 parent 84aa3cf commit 556b073

File tree

6 files changed

+381
-11
lines changed

6 files changed

+381
-11
lines changed

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMemberCardService.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package me.chanjar.weixin.mp.api;
22

33
import me.chanjar.weixin.common.error.WxErrorException;
4-
import me.chanjar.weixin.mp.bean.card.MemberCardActivateUserFormRequest;
5-
import me.chanjar.weixin.mp.bean.card.MemberCardActivateUserFormResult;
6-
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateResult;
4+
import me.chanjar.weixin.mp.bean.card.*;
75
import me.chanjar.weixin.mp.bean.membercard.*;
86

97
/**
@@ -29,6 +27,12 @@ public interface WxMpMemberCardService {
2927
*/
3028
String MEMBER_CARD_ACTIVATE_URL = "https://api.weixin.qq.com/card/membercard/activate/geturl";
3129

30+
/**
31+
* 会员卡信息更新
32+
*/
33+
String MEMBER_CARD_UPDATE = "https://api.weixin.qq.com/card/update";
34+
35+
3236
/**
3337
* 得到WxMpService
3438
*/
@@ -102,4 +106,12 @@ public interface WxMpMemberCardService {
102106
* @throws WxErrorException
103107
*/
104108
ActivatePluginParam getActivatePluginParam(String cardId, String outStr) throws WxErrorException;
109+
110+
/**
111+
* 更新会员卡信息
112+
* @param memberCardUpdateRequest
113+
* @return
114+
* @throws WxErrorException
115+
*/
116+
CardUpdateResult updateCardInfo(MemberCardUpdateRequest memberCardUpdateRequest) throws WxErrorException;
105117
}

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMemberCardServiceImpl.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.util.HashMap;
66
import java.util.Map;
77

8+
import me.chanjar.weixin.mp.bean.card.*;
89
import org.apache.commons.lang3.StringUtils;
910
import org.slf4j.Logger;
1011
import org.slf4j.LoggerFactory;
@@ -18,14 +19,6 @@
1819
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
1920
import me.chanjar.weixin.mp.api.WxMpMemberCardService;
2021
import me.chanjar.weixin.mp.api.WxMpService;
21-
import me.chanjar.weixin.mp.bean.card.AdvancedInfo;
22-
import me.chanjar.weixin.mp.bean.card.BaseInfo;
23-
import me.chanjar.weixin.mp.bean.card.DateInfo;
24-
import me.chanjar.weixin.mp.bean.card.MemberCard;
25-
import me.chanjar.weixin.mp.bean.card.MemberCardActivateUserFormRequest;
26-
import me.chanjar.weixin.mp.bean.card.MemberCardActivateUserFormResult;
27-
import me.chanjar.weixin.mp.bean.card.MemberCardCreateRequest;
28-
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateResult;
2922
import me.chanjar.weixin.mp.bean.card.enums.BusinessServiceType;
3023
import me.chanjar.weixin.mp.bean.card.enums.CardColor;
3124
import me.chanjar.weixin.mp.bean.card.enums.DateInfoType;
@@ -329,6 +322,20 @@ public ActivatePluginParam getActivatePluginParam(String cardId, String outStr)
329322
return null;
330323
}
331324

325+
/**
326+
* 更新会员卡信息
327+
*
328+
* @param memberCardUpdateRequest
329+
* @return
330+
* @throws WxErrorException
331+
*/
332+
@Override
333+
public CardUpdateResult updateCardInfo(MemberCardUpdateRequest memberCardUpdateRequest) throws WxErrorException {
334+
String response = this.wxMpService.post(MEMBER_CARD_UPDATE, GSON.toJson(memberCardUpdateRequest));
335+
CardUpdateResult result = GSON.fromJson(response, CardUpdateResult.class);
336+
return result;
337+
}
338+
332339
/**
333340
* 去掉url中的路径,留下请求参数部分
334341
*
Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
package me.chanjar.weixin.mp.bean.card;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
6+
7+
import java.io.Serializable;
8+
9+
/**
10+
* 微信会员卡基本信息更新
11+
* @author yuanqixun
12+
* date:2018-08-25 00:36
13+
*/
14+
@Data
15+
public class BaseInfoUpdate implements Serializable {
16+
17+
/**
18+
* 需要审核:卡券名,字数上限为9个汉字 (建议涵盖卡券属性、服务及金额).
19+
*/
20+
@SerializedName("title")
21+
private String title;
22+
23+
/**
24+
* 卡券的商户logo,建议像素为300*300.
25+
*/
26+
@SerializedName("logo_url")
27+
private String logoUrl;
28+
29+
/**
30+
* 卡券使用提醒,字数上限为16个汉字.
31+
*/
32+
@SerializedName("notice")
33+
private String notice;
34+
35+
/**
36+
* 需要审核:卡券使用说明,字数上限为1024个汉字.
37+
*/
38+
@SerializedName("description")
39+
private String description;
40+
41+
/**
42+
* 客服电话.
43+
*/
44+
@SerializedName("service_phone")
45+
private String servicePhone;
46+
47+
/**
48+
* 券颜色,按色彩规范标注填写Color010-Color100.
49+
*/
50+
@SerializedName("color")
51+
private String color;
52+
53+
/**
54+
* 门店位置ID,调用 POI门店管理接口 获取门店位置ID.
55+
*/
56+
@SerializedName("location_id_list")
57+
private String locationIdList;
58+
59+
/**
60+
* 会员卡是否支持全部门店,填写后商户门店更新时会自动同步至卡券.
61+
*/
62+
@SerializedName("use_all_locations")
63+
private Boolean useAllLocations;
64+
65+
/**
66+
* 卡券中部居中的按钮,仅在卡券激活后且可用状态 时显示.
67+
*/
68+
@SerializedName("center_title")
69+
private String centerTitle;
70+
71+
/**
72+
* 显示在入口下方的提示语,仅在卡券激活后且可用状态时显示.
73+
*/
74+
@SerializedName("center_sub_title")
75+
private String centerSubTitle;
76+
77+
/**
78+
* 顶部居中的url,仅在卡券激活后且可用状态时显示.
79+
*/
80+
@SerializedName("center_url")
81+
private String centerUrl;
82+
83+
/**
84+
* 自定义跳转外链的入口名字.
85+
*/
86+
@SerializedName("custom_url_name")
87+
private String customUrlName;
88+
89+
/**
90+
* 自定义跳转的URL.
91+
*/
92+
@SerializedName("custom_url")
93+
private String customUrl;
94+
95+
/**
96+
* 显示在入口右侧的提示语.
97+
*/
98+
@SerializedName("custom_url_sub_title")
99+
private String customUrlSubTitle;
100+
101+
/**
102+
* 营销场景的自定义入口名称.
103+
*/
104+
@SerializedName("promotion_url_name")
105+
private String promotionUrlName;
106+
107+
/**
108+
* 入口跳转外链的地址链接.
109+
*/
110+
@SerializedName("promotion_url")
111+
private String promotionUrl;
112+
113+
/**
114+
* 显示在营销入口右侧的提示语.
115+
*/
116+
@SerializedName("promotion_url_sub_title")
117+
private String promotionUrlSubTitle;
118+
119+
/**
120+
* Code展示类型.
121+
* "CODE_TYPE_TEXT" 文本 "CODE_TYPE_BARCODE" 一维码 "CODE_TYPE_QRCODE" 二维码 "CODE_TYPE_ONLY_QRCODE" 仅显示二维码 "CODE_TYPE_ONLY_BARCODE" 仅显示一维码 "CODE_TYPE_NONE" 不显示任何码型
122+
*/
123+
@SerializedName("code_type")
124+
private String codeType;
125+
126+
/**
127+
* 支付功能结构体,swipe_card结构.
128+
*/
129+
@SerializedName("pay_info")
130+
private PayInfo payInfo;
131+
132+
/**
133+
* 是否设置该会员卡中部的按钮同时支持微信支付刷卡和会员卡二维码.
134+
*/
135+
@SerializedName("is_pay_and_qrcode")
136+
private Boolean isPayAndQrcode;
137+
138+
/**
139+
* 每人可领券的数量限制,建议会员卡每人限领一张.
140+
*/
141+
@SerializedName("get_limit")
142+
private Integer getLimit;
143+
144+
/**
145+
* 卡券领取页面是否可分享,默认为true.
146+
*/
147+
@SerializedName("can_share")
148+
private Boolean canShare;
149+
150+
/**
151+
* 卡券是否可转赠,默认为true.
152+
*/
153+
@SerializedName("can_give_friend")
154+
private Boolean canGiveFriend;
155+
156+
/**
157+
* 使用日期,有效期的信息.
158+
*/
159+
@SerializedName("date_info")
160+
private DateInfo dateInfo;
161+
162+
@Override
163+
public String toString() {
164+
return WxMpGsonBuilder.create().toJson(this);
165+
}
166+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package me.chanjar.weixin.mp.bean.card;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
6+
/**
7+
* @author yqx
8+
* @date 2018/11/07
9+
*/
10+
@Data
11+
public class CardUpdateResult {
12+
13+
private int errcode;
14+
15+
private String errmsg;
16+
17+
/**
18+
* 此次更新是否需要提审,true为需要,false为不需要。
19+
*/
20+
@SerializedName("send_check")
21+
private boolean sendCheck;
22+
23+
}

0 commit comments

Comments
 (0)