From 5761226887a08f0f40a8a924f351a73b8642dece Mon Sep 17 00:00:00 2001 From: yang229 Date: Sun, 22 Dec 2019 16:06:36 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20#1328=20=E5=BE=AE=E4=BF=A1=E5=8D=A1?= =?UTF-8?q?=E5=8A=B5=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E5=B7=B2=E9=A2=86?= =?UTF-8?q?=E5=8F=96=E5=8D=A1=E5=88=B8=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 微信公众号,功能新增,微信卡券 添加用户已领取卡券接口 * 添加用户已领取卡券接口测试代码 --- .../weixin/mp/api/WxMpCardService.java | 11 ++++++ .../mp/api/impl/WxMpCardServiceImpl.java | 10 +++++ .../chanjar/weixin/mp/bean/card/UserCard.java | 34 +++++++++++++++++ .../mp/bean/card/WxUserCardListResult.java | 38 +++++++++++++++++++ .../chanjar/weixin/mp/enums/WxMpApiUrl.java | 5 +++ .../mp/api/impl/WxMpCardServiceImplTest.java | 9 +++++ 6 files changed, 107 insertions(+) create mode 100644 weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/UserCard.java create mode 100644 weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxUserCardListResult.java diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java index 2202f5568..f0bd0b8f0 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java @@ -283,4 +283,15 @@ public interface WxMpCardService { void cardSelfConsumeCellSet(String cardId, Boolean isOpen, Boolean needVerifyCod, Boolean needRemarkAmount) throws WxErrorException; + /** + * 获取用户已领取卡券接口 + * https://developers.weixin.qq.com/doc/offiaccount/Cards_and_Offer/Managing_Coupons_Vouchers_and_Cards.html#1 + * + * @param openId 需要查询的用户openid + * @param cardId 卡券ID。不填写时默认查询当前appid下的卡券 + * @return + * @throws WxErrorException + */ + WxUserCardListResult getUserCardList(String openId, String cardId) throws WxErrorException; + } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java index 5cdc605ba..740c96e95 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java @@ -351,6 +351,16 @@ public class WxMpCardServiceImpl implements WxMpCardService { } + @Override + public WxUserCardListResult getUserCardList(String openId, String cardId) throws WxErrorException { + JsonObject param = new JsonObject(); + param.addProperty("openid", openId); + param.addProperty("card_id", cardId); + String response = this.wxMpService.post(WxMpApiUrl.Card.CARD_USER_CARD_LIST, param.toString()); + return WxUserCardListResult.fromJson(response); + } + + private void checkCardId(String cardId) throws WxErrorException { if (StringUtils.isEmpty(cardId)) { throw new WxErrorException(WxError.builder().errorCode(41012).errorMsg("cardId不能为空").build()); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/UserCard.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/UserCard.java new file mode 100644 index 000000000..5985988e0 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/UserCard.java @@ -0,0 +1,34 @@ +package me.chanjar.weixin.mp.bean.card; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; + +/** + * 用户已领卡圈对象 + * @author yang229 + * @date 2019/12/22 + */ +@Data +public class UserCard implements java.io.Serializable { + /** + * 用户卡券code码 + */ + @SerializedName("code") + private String code; + + /** + * 卡券ID + */ + @SerializedName("card_id") + private String cardId; + + public static UserCard fromJson(String json) { + return WxMpGsonBuilder.create().fromJson(json, UserCard.class); + } + + @Override + public String toString() { + return WxMpGsonBuilder.create().toJson(this); + } +} diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxUserCardListResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxUserCardListResult.java new file mode 100644 index 000000000..9133a32f1 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxUserCardListResult.java @@ -0,0 +1,38 @@ +package me.chanjar.weixin.mp.bean.card; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import me.chanjar.weixin.mp.bean.result.WxMpResult; +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; + +import java.util.List; + +/** + * 用户已领卡券返回 + * @author yang229 + * @date 2019/12/22 + */ +@Data +public class WxUserCardListResult extends WxMpResult implements java.io.Serializable { + + /** + * 卡券列表 + */ + @SerializedName("card_list") + private List cardList; + + /** + * 是否有可用的朋友的券 + */ + @SerializedName("has_share_card") + private Boolean hasShareCard; + + public static WxUserCardListResult fromJson(String json) { + return WxMpGsonBuilder.create().fromJson(json, WxUserCardListResult.class); + } + + @Override + public String toString() { + return WxMpGsonBuilder.create().toJson(this); + } +} diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java index 5963af929..c296481a8 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java @@ -596,6 +596,11 @@ public interface WxMpApiUrl { * 设置自助核销接口 */ CARD_SELF_CONSUME_CELL_SET(API_DEFAULT_HOST_URL, "/card/selfconsumecell/set"), + + /** + * 获取用户已领取卡券接口 + */ + CARD_USER_CARD_LIST(API_DEFAULT_HOST_URL, "/card/user/getcardlist"), ; private String prefix; diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java index 948af00cd..4fa75b7f9 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java @@ -227,4 +227,13 @@ public class WxMpCardServiceImplTest { @Test public void testCreateLandingPage() { } + + @Test + public void testGetUserCardList() throws WxErrorException { + String openId = "ou7Gr5sJZgFGgj38sRCNQg5pc3Fc"; + String cardId = "pu7Gr5secJXPkxBeuYUhmp8TYsuY"; + WxUserCardListResult result = this.wxService.getCardService().getUserCardList(openId, cardId); + assertTrue(result.isSuccess()); + System.out.println(result); + } }