Skip to content

Commit 6a2ff80

Browse files
IOManbinarywang
authored andcommitted
binarywang#900 增加新增团购券、现金抵扣券、折扣券、兑换券以及普通优惠券的接口
1 parent 5560859 commit 6a2ff80

19 files changed

+537
-6
lines changed

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
import me.chanjar.weixin.common.bean.WxCardApiSignature;
44
import me.chanjar.weixin.common.error.WxErrorException;
5-
import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateRequest;
6-
import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateResult;
7-
import me.chanjar.weixin.mp.bean.card.WxMpCardQrcodeCreateResult;
5+
import me.chanjar.weixin.mp.bean.card.*;
86
import me.chanjar.weixin.mp.bean.result.WxMpCardResult;
97

108
/**
@@ -14,6 +12,7 @@
1412
* @author yuanqixun 2018-08-29
1513
*/
1614
public interface WxMpCardService {
15+
String CARD_CREATE = "https://api.weixin.qq.com/card/create";
1716
String CARD_GET = "https://api.weixin.qq.com/card/get";
1817
String CARD_GET_TICKET = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=wx_card";
1918
String CARD_CODE_DECRYPT = "https://api.weixin.qq.com/card/code/decrypt";
@@ -142,6 +141,14 @@ void markCardCode(String code, String cardId, String openId, boolean isMark) thr
142141
*/
143142
String addTestWhiteList(String openid) throws WxErrorException;
144143

144+
/**
145+
*
146+
* @param cardCreateMessage
147+
* @return
148+
* @throws WxErrorException
149+
*/
150+
WxMpCardCreateResult createCard(WxMpCardCreateMessage cardCreateMessage) throws WxErrorException;
151+
145152
/**
146153
* 创建卡券二维码
147154
*

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Arrays;
44
import java.util.concurrent.locks.Lock;
55

6+
import me.chanjar.weixin.mp.bean.card.*;
67
import org.apache.commons.lang3.StringUtils;
78
import org.slf4j.Logger;
89
import org.slf4j.LoggerFactory;
@@ -22,9 +23,6 @@
2223
import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor;
2324
import me.chanjar.weixin.mp.api.WxMpCardService;
2425
import me.chanjar.weixin.mp.api.WxMpService;
25-
import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateRequest;
26-
import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateResult;
27-
import me.chanjar.weixin.mp.bean.card.WxMpCardQrcodeCreateResult;
2826
import me.chanjar.weixin.mp.bean.result.WxMpCardResult;
2927
import me.chanjar.weixin.mp.enums.TicketType;
3028
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
@@ -265,6 +263,13 @@ public String addTestWhiteList(String openid) throws WxErrorException {
265263
return respone;
266264
}
267265

266+
@Override
267+
public WxMpCardCreateResult createCard(WxMpCardCreateMessage cardCreateMessage) throws WxErrorException {
268+
269+
String response = this.wxMpService.post(CARD_CREATE, GSON.toJson(cardCreateMessage));
270+
return WxMpCardCreateResult.fromJson(response);
271+
}
272+
268273
/**
269274
* 创建卡券二维码.
270275
*/
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
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 leeis
12+
* @Date 2018/12/29
13+
*/
14+
@Data
15+
public class Card implements Serializable {
16+
17+
private static final long serialVersionUID = -3697110761983756780L;
18+
19+
/**
20+
* 基本信息.
21+
*/
22+
@SerializedName("base_info")
23+
private BaseInfo baseInfo;
24+
25+
/**
26+
* 创建优惠券特有的高级字段.
27+
*/
28+
@SerializedName("advanced_info")
29+
private AdvancedInfo advancedInfo;
30+
31+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package me.chanjar.weixin.mp.bean.card;
2+
3+
import lombok.Data;
4+
5+
import java.io.Serializable;
6+
7+
/**
8+
* @Author leeis
9+
* @Date 2018/12/29
10+
*/
11+
@Data
12+
public class CardCreateRequest implements Serializable {
13+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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 leeis
12+
* @Date 2018/12/29
13+
*/
14+
@Data
15+
public final class CashCard extends Card implements Serializable {
16+
17+
private static final long serialVersionUID = 6965491956462769745L;
18+
19+
/**
20+
* 代金券专用,表示起用金额(单位为分),如果无起用门槛则填0
21+
*/
22+
@SerializedName("least_cost")
23+
private int leastCost;
24+
25+
/**
26+
* 代金券专用,表示减免金额。(单位为分)
27+
*/
28+
@SerializedName("reduce_cost")
29+
private int reduceCost;
30+
31+
@Override
32+
public String toString() {
33+
return WxMpGsonBuilder.create().toJson(this);
34+
}
35+
36+
public static CashCard fromJson(String json) {
37+
return WxMpGsonBuilder.create().fromJson(json, CashCard.class);
38+
}
39+
}
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 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 leeis
12+
* @Date 2018/12/29
13+
*/
14+
@Data
15+
public class CashCardCreateRequest extends CardCreateRequest implements Serializable {
16+
@SerializedName("card_type")
17+
private String cardType = "CASH";
18+
19+
private CashCard cash;
20+
21+
@Override
22+
public String toString() {
23+
return WxMpGsonBuilder.create().toJson(this);
24+
}
25+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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 leeis
12+
* @Date 2018/12/29
13+
*/
14+
@Data
15+
public final class DiscountCard extends Card implements Serializable {
16+
17+
private static final long serialVersionUID = 1704610082472315077L;
18+
19+
/**
20+
* 折扣券专用,表示打折额度(百分比)。填30就是七折。
21+
*/
22+
private int discount;
23+
24+
@Override
25+
public String toString() {
26+
return WxMpGsonBuilder.create().toJson(this);
27+
}
28+
29+
public static DiscountCard fromJson(String json) {
30+
return WxMpGsonBuilder.create().fromJson(json, DiscountCard.class);
31+
}
32+
}
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 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 leeis
12+
* @Date 2018/12/29
13+
*/
14+
@Data
15+
public class DiscountCardCreateRequest extends CardCreateRequest implements Serializable {
16+
@SerializedName("card_type")
17+
private String cardType = "DISCOUNT";
18+
19+
private DiscountCard discount;
20+
21+
@Override
22+
public String toString() {
23+
return WxMpGsonBuilder.create().toJson(this);
24+
}
25+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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 leeis
12+
* @Date 2018/12/29
13+
*/
14+
@Data
15+
public final class GeneralCard extends Card implements Serializable {
16+
17+
private static final long serialVersionUID = -1577656733441132585L;
18+
19+
/**
20+
* 兑换券专用,填写兑换内容的名称。
21+
*/
22+
@SerializedName("default_detail")
23+
private String defaultDetail;
24+
25+
@Override
26+
public String toString() {
27+
return WxMpGsonBuilder.create().toJson(this);
28+
}
29+
30+
public static GeneralCard fromJson(String json) {
31+
return WxMpGsonBuilder.create().fromJson(json, GeneralCard.class);
32+
}
33+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
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 leeis
12+
* @Date 2018/12/29
13+
*/
14+
@Data
15+
public class GeneralCardCreateRequest extends CardCreateRequest implements Serializable {
16+
@SerializedName("card_type")
17+
private String cardType = "GENERAL_COUPON";
18+
19+
@SerializedName("general_coupon")
20+
private GeneralCard generalCoupon;
21+
22+
@Override
23+
public String toString() {
24+
return WxMpGsonBuilder.create().toJson(this);
25+
}
26+
}

0 commit comments

Comments
 (0)