Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ public interface WxMpCardService {
*/
String CARD_CODE_UNAVAILABLE = "https://api.weixin.qq.com/card/code/unavailable";

/**
* 卡券删除
*/
String CARD_DELETE = "https://api.weixin.qq.com/card/delete";

/**
* 得到WxMpService
*/
Expand Down Expand Up @@ -189,4 +194,12 @@ void markCardCode(String code, String cardId, String openId, boolean isMark) thr
*/
String unavailableCardCode(String cardId, String code, String reason) throws WxErrorException;

/**
* 删除卡券接口
* @param cardId
* @return
* @throws WxErrorException
*/
WxMpCardDeleteResult deleteCard(String cardId) throws WxErrorException;

}
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
package me.chanjar.weixin.mp.api.impl;

import java.util.Arrays;
import java.util.concurrent.locks.Lock;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import com.google.gson.*;
import com.google.gson.reflect.TypeToken;
import me.chanjar.weixin.common.bean.WxCardApiSignature;
import me.chanjar.weixin.common.error.WxError;
Expand All @@ -22,14 +10,15 @@
import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor;
import me.chanjar.weixin.mp.api.WxMpCardService;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateMessage;
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateResult;
import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateRequest;
import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateResult;
import me.chanjar.weixin.mp.bean.card.WxMpCardQrcodeCreateResult;
import me.chanjar.weixin.mp.bean.card.WxMpCardResult;
import me.chanjar.weixin.mp.bean.card.*;
import me.chanjar.weixin.mp.enums.TicketType;
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Arrays;
import java.util.concurrent.locks.Lock;

/**
* Created by Binary Wang on 2016/7/27.
Expand Down Expand Up @@ -325,4 +314,15 @@ public String unavailableCardCode(String cardId, String code, String reason) thr
jsonRequest.addProperty("reason", reason);
return this.wxMpService.post(CARD_CODE_UNAVAILABLE, GSON.toJson(jsonRequest));
}

@Override
public WxMpCardDeleteResult deleteCard(String cardId) throws WxErrorException {
if (StringUtils.isEmpty(cardId)) {
throw new WxErrorException(WxError.builder().errorCode(41012).errorMsg("cardId不能为空").build());
}
JsonObject param = new JsonObject();
param.addProperty("card_id", cardId);
String response = this.wxMpService.post(CARD_DELETE, param.toString());
return WxMpCardDeleteResult.fromJson(response);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package me.chanjar.weixin.mp.bean.card;

import java.io.Serializable;

/**
* @description 卡券返回结果基础类
* @author: fanxl
* @date: 2019/1/22 0022 10:08
*/
public class BaseWxMpCardResult implements Serializable {

/**
* 错误码
*/
private Integer errcode;

/**
* 错误信息
*/
private String errmsg;

public boolean isSuccess() {
return 0 == errcode;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package me.chanjar.weixin.mp.bean.card;

import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;

/**
* @description 删除卡券结果
* @author: fanxl
* @date: 2019/1/22 0022 10:24
*/
public class WxMpCardDeleteResult extends BaseWxMpCardResult {

public static WxMpCardDeleteResult fromJson(String json) {
return WxMpGsonBuilder.create().fromJson(json, WxMpCardDeleteResult.class);
}

@Override
public String toString() {
return WxMpGsonBuilder.create().toJson(this);
}

}
Original file line number Diff line number Diff line change
@@ -1,29 +1,16 @@
package me.chanjar.weixin.mp.api.impl;

import org.testng.annotations.*;

import com.google.inject.Inject;
import me.chanjar.weixin.common.bean.WxCardApiSignature;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.test.ApiTestModule;
import me.chanjar.weixin.mp.bean.card.BaseInfo;
import me.chanjar.weixin.mp.bean.card.CashCard;
import me.chanjar.weixin.mp.bean.card.CashCardCreateRequest;
import me.chanjar.weixin.mp.bean.card.DateInfo;
import me.chanjar.weixin.mp.bean.card.DiscountCard;
import me.chanjar.weixin.mp.bean.card.DiscountCardCreateRequest;
import me.chanjar.weixin.mp.bean.card.GeneralCard;
import me.chanjar.weixin.mp.bean.card.GeneralCardCreateRequest;
import me.chanjar.weixin.mp.bean.card.GiftCard;
import me.chanjar.weixin.mp.bean.card.GiftCardCreateRequest;
import me.chanjar.weixin.mp.bean.card.GrouponCard;
import me.chanjar.weixin.mp.bean.card.GrouponCardCreateRequest;
import me.chanjar.weixin.mp.bean.card.Sku;
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateMessage;
import me.chanjar.weixin.mp.bean.card.WxMpCardResult;

import static org.testng.AssertJUnit.*;
import me.chanjar.weixin.mp.bean.card.*;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;

import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNotNull;

/**
* 测试代码仅供参考,未做严格测试,因原接口作者并未提供单元测试代码
Expand Down Expand Up @@ -210,4 +197,13 @@ public void testCreateGrouponCard() throws WxErrorException {
generalMessage.setCardCreateRequest(generalCardCreateRequest);
System.out.println(this.wxService.getCardService().createCard(generalMessage));
}

@Test
public void testDeleteCard() throws Exception {
String cardId = "pwkrWjtw7W4_l50kCQcZ1in1yS6g";
WxMpCardDeleteResult result = this.wxService.getCardService().deleteCard(cardId);
assertEquals(result.isSuccess(), true);
System.out.println(result);
}

}