Skip to content

Commit 58faf5a

Browse files
fanxl12binarywang
authored andcommitted
binarywang#924 增加卡券删除功能
1 parent 24619d6 commit 58faf5a

File tree

5 files changed

+93
-38
lines changed

5 files changed

+93
-38
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ public interface WxMpCardService {
2727
*/
2828
String CARD_CODE_UNAVAILABLE = "https://api.weixin.qq.com/card/code/unavailable";
2929

30+
/**
31+
* 卡券删除
32+
*/
33+
String CARD_DELETE = "https://api.weixin.qq.com/card/delete";
34+
3035
/**
3136
* 得到WxMpService
3237
*/
@@ -189,4 +194,12 @@ void markCardCode(String code, String cardId, String openId, boolean isMark) thr
189194
*/
190195
String unavailableCardCode(String cardId, String code, String reason) throws WxErrorException;
191196

197+
/**
198+
* 删除卡券接口
199+
* @param cardId
200+
* @return
201+
* @throws WxErrorException
202+
*/
203+
WxMpCardDeleteResult deleteCard(String cardId) throws WxErrorException;
204+
192205
}

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

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,6 @@
11
package me.chanjar.weixin.mp.api.impl;
22

3-
import java.util.Arrays;
4-
import java.util.concurrent.locks.Lock;
5-
6-
import org.apache.commons.lang3.StringUtils;
7-
import org.slf4j.Logger;
8-
import org.slf4j.LoggerFactory;
9-
10-
import com.google.gson.Gson;
11-
import com.google.gson.JsonArray;
12-
import com.google.gson.JsonElement;
13-
import com.google.gson.JsonObject;
14-
import com.google.gson.JsonParser;
15-
import com.google.gson.JsonPrimitive;
3+
import com.google.gson.*;
164
import com.google.gson.reflect.TypeToken;
175
import me.chanjar.weixin.common.bean.WxCardApiSignature;
186
import me.chanjar.weixin.common.error.WxError;
@@ -22,14 +10,15 @@
2210
import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor;
2311
import me.chanjar.weixin.mp.api.WxMpCardService;
2412
import me.chanjar.weixin.mp.api.WxMpService;
25-
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateMessage;
26-
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateResult;
27-
import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateRequest;
28-
import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateResult;
29-
import me.chanjar.weixin.mp.bean.card.WxMpCardQrcodeCreateResult;
30-
import me.chanjar.weixin.mp.bean.card.WxMpCardResult;
13+
import me.chanjar.weixin.mp.bean.card.*;
3114
import me.chanjar.weixin.mp.enums.TicketType;
3215
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
16+
import org.apache.commons.lang3.StringUtils;
17+
import org.slf4j.Logger;
18+
import org.slf4j.LoggerFactory;
19+
20+
import java.util.Arrays;
21+
import java.util.concurrent.locks.Lock;
3322

3423
/**
3524
* Created by Binary Wang on 2016/7/27.
@@ -325,4 +314,15 @@ public String unavailableCardCode(String cardId, String code, String reason) thr
325314
jsonRequest.addProperty("reason", reason);
326315
return this.wxMpService.post(CARD_CODE_UNAVAILABLE, GSON.toJson(jsonRequest));
327316
}
317+
318+
@Override
319+
public WxMpCardDeleteResult deleteCard(String cardId) throws WxErrorException {
320+
if (StringUtils.isEmpty(cardId)) {
321+
throw new WxErrorException(WxError.builder().errorCode(41012).errorMsg("cardId不能为空").build());
322+
}
323+
JsonObject param = new JsonObject();
324+
param.addProperty("card_id", cardId);
325+
String response = this.wxMpService.post(CARD_DELETE, param.toString());
326+
return WxMpCardDeleteResult.fromJson(response);
327+
}
328328
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package me.chanjar.weixin.mp.bean.card;
2+
3+
import java.io.Serializable;
4+
5+
/**
6+
* @description 卡券返回结果基础类
7+
* @author: fanxl
8+
* @date: 2019/1/22 0022 10:08
9+
*/
10+
public class BaseWxMpCardResult implements Serializable {
11+
12+
/**
13+
* 错误码
14+
*/
15+
private Integer errcode;
16+
17+
/**
18+
* 错误信息
19+
*/
20+
private String errmsg;
21+
22+
public boolean isSuccess() {
23+
return 0 == errcode;
24+
}
25+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package me.chanjar.weixin.mp.bean.card;
2+
3+
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
4+
5+
/**
6+
* @description 删除卡券结果
7+
* @author: fanxl
8+
* @date: 2019/1/22 0022 10:24
9+
*/
10+
public class WxMpCardDeleteResult extends BaseWxMpCardResult {
11+
12+
public static WxMpCardDeleteResult fromJson(String json) {
13+
return WxMpGsonBuilder.create().fromJson(json, WxMpCardDeleteResult.class);
14+
}
15+
16+
@Override
17+
public String toString() {
18+
return WxMpGsonBuilder.create().toJson(this);
19+
}
20+
21+
}

weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,16 @@
11
package me.chanjar.weixin.mp.api.impl;
22

3-
import org.testng.annotations.*;
4-
53
import com.google.inject.Inject;
64
import me.chanjar.weixin.common.bean.WxCardApiSignature;
75
import me.chanjar.weixin.common.error.WxErrorException;
86
import me.chanjar.weixin.mp.api.WxMpService;
97
import me.chanjar.weixin.mp.api.test.ApiTestModule;
10-
import me.chanjar.weixin.mp.bean.card.BaseInfo;
11-
import me.chanjar.weixin.mp.bean.card.CashCard;
12-
import me.chanjar.weixin.mp.bean.card.CashCardCreateRequest;
13-
import me.chanjar.weixin.mp.bean.card.DateInfo;
14-
import me.chanjar.weixin.mp.bean.card.DiscountCard;
15-
import me.chanjar.weixin.mp.bean.card.DiscountCardCreateRequest;
16-
import me.chanjar.weixin.mp.bean.card.GeneralCard;
17-
import me.chanjar.weixin.mp.bean.card.GeneralCardCreateRequest;
18-
import me.chanjar.weixin.mp.bean.card.GiftCard;
19-
import me.chanjar.weixin.mp.bean.card.GiftCardCreateRequest;
20-
import me.chanjar.weixin.mp.bean.card.GrouponCard;
21-
import me.chanjar.weixin.mp.bean.card.GrouponCardCreateRequest;
22-
import me.chanjar.weixin.mp.bean.card.Sku;
23-
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateMessage;
24-
import me.chanjar.weixin.mp.bean.card.WxMpCardResult;
25-
26-
import static org.testng.AssertJUnit.*;
8+
import me.chanjar.weixin.mp.bean.card.*;
9+
import org.testng.annotations.Guice;
10+
import org.testng.annotations.Test;
11+
12+
import static org.testng.AssertJUnit.assertEquals;
13+
import static org.testng.AssertJUnit.assertNotNull;
2714

2815
/**
2916
* 测试代码仅供参考,未做严格测试,因原接口作者并未提供单元测试代码
@@ -210,4 +197,13 @@ public void testCreateGrouponCard() throws WxErrorException {
210197
generalMessage.setCardCreateRequest(generalCardCreateRequest);
211198
System.out.println(this.wxService.getCardService().createCard(generalMessage));
212199
}
200+
201+
@Test
202+
public void testDeleteCard() throws Exception {
203+
String cardId = "pwkrWjtw7W4_l50kCQcZ1in1yS6g";
204+
WxMpCardDeleteResult result = this.wxService.getCardService().deleteCard(cardId);
205+
assertEquals(result.isSuccess(), true);
206+
System.out.println(result);
207+
}
208+
213209
}

0 commit comments

Comments
 (0)