CardApi.java
9.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
package com.jfinal.weixin.sdk.api;
import java.util.List;
import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.weixin.sdk.utils.HttpUtils;
import com.jfinal.weixin.sdk.utils.JsonUtils;
/**
* 卡券相关接口
* Created by L.cm on 2016/6/16.
*/
public class CardApi {
private static String cardCreateUrl = "https://api.weixin.qq.com/card/create?access_token=";
/**
* 创建会员卡接口
* @param jsonStr JSON数据
* @return {ApiResult}
*/
public static ApiResult create(String jsonStr) {
String jsonResult = HttpUtils.post(cardCreateUrl + AccessTokenApi.getAccessTokenStr(), jsonStr);
return new ApiResult(jsonResult);
}
private static String createQrcodeCard = "https://api.weixin.qq.com/card/qrcode/create?access_token=";
/**
* 创建二维码接口
* @param jsonStr JSON数据
* @return {ApiResult}
*/
public static ApiResult createQrcode(String jsonStr) {
String jsonResult = HttpUtils.post(createQrcodeCard + AccessTokenApi.getAccessTokenStr(), jsonStr);
return new ApiResult(jsonResult);
}
private static String createLandingPageCard = "https://api.weixin.qq.com/card/landingpage/create?access_token=";
/**
* 创建货架接口
* @param jsonStr JSON数据
* @return {ApiResult}
*/
public static ApiResult createLandingPage(String jsonStr) {
String jsonResult = HttpUtils.post(createLandingPageCard + AccessTokenApi.getAccessTokenStr(), jsonStr);
return new ApiResult(jsonResult);
}
private static String gethtmlMpnews = "https://api.weixin.qq.com/card/mpnews/gethtml?access_token=";
/**
* 图文消息群发卡券
* @param cardId 必填 否 卡券ID。
* @return {ApiResult}
*/
public static ApiResult gethtmlMpnews(String cardId) {
Kv data = Kv.create();
if (StrKit.notBlank(cardId)) {
data.set("card_id", cardId);
}
String jsonResult = HttpUtils.post(gethtmlMpnews + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
private static String setTestWhiteList = "https://api.weixin.qq.com/card/testwhitelist/set?access_token=";
/**
* 设置测试白名单
* @param jsonStr JSON数据
* @return {ApiResult}
*/
public static ApiResult setTestWhiteList(String jsonStr) {
String jsonResult = HttpUtils.post(setTestWhiteList + AccessTokenApi.getAccessTokenStr(), jsonStr);
return new ApiResult(jsonResult);
}
private static String setPaycell = "https://api.weixin.qq.com/card/testwhitelist/set?access_token=";
/**
* 设置买单接口
* @param cardId 卡券ID
* @param isOpen 是否开启买单功能,填true/false
* @return {ApiResult}
*/
public static ApiResult setPaycell(String cardId, boolean isOpen) {
Kv data = Kv.by("card_id", cardId).set("is_open", isOpen);
String jsonResult = HttpUtils.post(setPaycell + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
private static String setSelfconsumecell = "https://api.weixin.qq.com/card/selfconsumecell/set?access_token=";
/**
* 设置自助核销接口
* @param cardId 卡券ID
* @param isOpen 是否开启买单功能,填true/false
* @return {ApiResult}
*/
public static ApiResult setSelfconsumecell(String cardId, boolean isOpen){
return setSelfconsumecell(cardId, isOpen, false, false);
}
/**
* 设置自助核销接口
* @param cardId 卡券ID
* @param isOpen 是否开启买单功能,填true/false
* @param needVerifyCod 用户核销时是否需要输入验证码,填true/false,默认为false
* @param needRemarkAmount 用户核销时是否需要备注核销金额,填true/false,默认为false
* @return {ApiResult}
*/
public static ApiResult setSelfconsumecell(String cardId, boolean isOpen, boolean needVerifyCod, boolean needRemarkAmount) {
Kv data = Kv.by("card_id", cardId).set("is_open", isOpen).set("need_verify_cod", needVerifyCod)
.set("need_remark_amount", needRemarkAmount);
String jsonResult = HttpUtils.post(setSelfconsumecell + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
private static String getUserCardList = "https://api.weixin.qq.com/card/user/getcardlist?access_token=";
/**
* 获取用户已领取卡券接口
*
* @param openid 是 string(64) 需要查询的用户openid
* @return {ApiResult}
*/
public static ApiResult getUserCardList(String openid) {
return getUserCardList(openid, null);
}
/**
* 获取用户已领取卡券接口
*
* @param openid 是 string(64) 需要查询的用户openid
* @param cardId 否 string(32) 卡券ID。不填写时默认查询当前appid下的卡券。
* @return {ApiResult}
*/
public static ApiResult getUserCardList(String openid, String cardId) {
Kv data = Kv.by("openid", openid);
if (StrKit.notBlank(cardId)) {
data.set("card_id", cardId);
}
String jsonResult = HttpUtils.post(getUserCardList + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
private static String getCard = "https://api.weixin.qq.com/card/get?access_token=";
/**
* 查看卡券详情
* @param cardId 卡券ID
* @return {ApiResult}
*/
public static ApiResult get(String cardId) {
Kv data = Kv.by("card_id", cardId);
String jsonResult = HttpUtils.post(getCard + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
private static String getBatch = "https://api.weixin.qq.com/card/batchget?access_token=";
/**
* 批量查询卡券列表
* @param offset 查询卡列表的起始偏移量,从0开始,即offset: 5是指从从列表里的第六个开始读取。
* @param count 需要查询的卡片的数量(数量最大50)。
* @return {ApiResult}
*/
public static ApiResult getBatch(int offset, int count) {
return getBatch(offset, count, null);
}
/**
* 批量查询卡券列表
* @param offset 查询卡列表的起始偏移量,从0开始,即offset: 5是指从从列表里的第六个开始读取。
* @param count 需要查询的卡片的数量(数量最大50)。
* @param statusList 支持开发者拉出指定状态的卡券列表“CARD_STATUS_NOT_VERIFY”,待审核;“CARD_STATUS_VERIFY_FAIL”,审核失败;“CARD_STATUS_VERIFY_OK”,通过审核;“CARD_STATUS_DELETE”,卡券被商户删除;“CARD_STATUS_DISPATCH”在公众平台投放过的卡券;
* @return {ApiResult}
*/
public static ApiResult getBatch(int offset, int count, List<String> statusList) {
Kv data = Kv.by("offset", offset).set("count", count);
if (statusList != null && !statusList.isEmpty()) {
data.set("status_list", statusList);
}
String jsonResult = HttpUtils.post(getBatch + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
private static String update = "https://api.weixin.qq.com/card/update?access_token=";
/**
* 更改卡券信息接口
* @param jsonStr JSON数据
* @return {ApiResult}
*/
public static ApiResult update(String jsonStr) {
String jsonResult = HttpUtils.post(update + AccessTokenApi.getAccessTokenStr(), jsonStr);
return new ApiResult(jsonResult);
}
private static String modifystock = "https://api.weixin.qq.com/card/modifystock?access_token=";
/**
* 修改库存接口
* @param cardId 卡券ID
* @param stockValue 增减的库存数量 负数为减,正数为增加,0不增不减。
* @return {ApiResult}
*/
public static ApiResult modifystock(String cardId, int stockValue) {
Kv data = Kv.by("card_id", cardId);
if (stockValue >= 0) {
data.set("increase_stock_value", stockValue);
} else {
data.set("reduce_stock_value", stockValue);
}
String jsonResult = HttpUtils.post(modifystock + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
private static String delete = "https://api.weixin.qq.com/card/delete?access_token=";
/**
* 删除卡券接口
* @param cardId 卡券ID
* @return {ApiResult}
*/
public static ApiResult delete(String cardId) {
Kv data = Kv.by("card_id", cardId);
String jsonResult = HttpUtils.post(delete + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
private static String unavailable = "https://api.weixin.qq.com/card/code/unavailable?access_token=";
/**
* 设置卡券失效接口,自定义卡券的请求
* @param code 设置失效的Code码。
* @param reason 用户发生退款 失效理由
* @return {ApiResult}
*/
public static ApiResult unavailableByCode(String code, String reason) {
Kv data = Kv.by("code", code).set("reason", reason);
String jsonResult = HttpUtils.post(unavailable + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
/**
* 设置卡券失效接口,自定义code卡券的请求。
* @param cardId 卡券ID
* @param reason 用户发生退款 失效理由
* @return {ApiResult}
*/
public static ApiResult unavailableByCard(String cardId, String reason) {
Kv data = Kv.by("card_id", cardId).set("reason", reason);
String jsonResult = HttpUtils.post(unavailable + AccessTokenApi.getAccessTokenStr(), JsonUtils.toJson(data));
return new ApiResult(jsonResult);
}
}