Преглед на файлове

#745 增加卡券失效接口,并修复会员卡是否支持微信支付和会员卡二维码的属性问题

* 1、增加卡券失效接口;修复会员卡是否支持微信支付和会员卡二维码的属性问题;
master
yuanqixun преди 6 години
committed by Binary Wang
родител
ревизия
95e398de7e
променени са 6 файла, в които са добавени 73 реда и са изтрити 13 реда
  1. +26
    -5
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java
  2. +26
    -2
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java
  3. +6
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/AdvancedInfo.java
  4. +6
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/BaseInfo.java
  5. +0
    -6
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/SwipeCard.java
  6. +9
    -0
      weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java

+ 26
- 5
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java Целия файл

@@ -10,7 +10,7 @@ import me.chanjar.weixin.mp.bean.result.WxMpCardResult;
/**
* 卡券相关接口
*
* @author YuJian(mgcnrx11@hotmail.com) on 01/11/2016
* @author YuJian(mgcnrx11 @ hotmail.com) on 01/11/2016
* @author yuanqixun 2018-08-29
*/
public interface WxMpCardService {
@@ -23,6 +23,10 @@ public interface WxMpCardService {
String CARD_TEST_WHITELIST = "https://api.weixin.qq.com/card/testwhitelist/set";
String CARD_QRCODE_CREAET = "https://api.weixin.qq.com/card/qrcode/create";
String CARD_LANDING_PAGE_CREAET = "https://api.weixin.qq.com/card/landingpage/create";
/**
* 将用户的卡券设置为失效状态
*/
String CARD_CODE_UNAVAILABLE = "https://api.weixin.qq.com/card/code/unavailable";

/**
* 得到WxMpService
@@ -132,6 +136,7 @@ public interface WxMpCardService {

/**
* 添加测试白名单
*
* @param openid 用户的openid
* @return
*/
@@ -139,7 +144,8 @@ public interface WxMpCardService {

/**
* 创建卡券二维码
* @param cardId 卡券编号
*
* @param cardId 卡券编号
* @param outerStr 二维码标识
* @return WxMpCardQrcodeCreateResult
*/
@@ -147,18 +153,33 @@ public interface WxMpCardService {

/**
* 创建卡券二维码
* @param cardId 卡券编号
* @param outerStr 二维码标识
*
* @param cardId 卡券编号
* @param outerStr 二维码标识
* @param expiresIn 失效时间,单位秒,不填默认365天
* @return WxMpCardQrcodeCreateResult
*/
WxMpCardQrcodeCreateResult createQrcodeCard(String cardId, String outerStr,int expiresIn) throws WxErrorException;
WxMpCardQrcodeCreateResult createQrcodeCard(String cardId, String outerStr, int expiresIn) throws WxErrorException;

/**
* 创建卡券货架
*
* @param createRequest 货架创建参数
* @return
* @throws WxErrorException
*/
WxMpCardLandingPageCreateResult createLandingPage(WxMpCardLandingPageCreateRequest createRequest) throws WxErrorException;

/**
* 将用户的卡券设置为失效状态
* 详见:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025272&anchor=9
*
* @param cardId 卡券编号
* @param code 用户会员卡号
* @param reason 设置为失效的原因
* @return
* @throws WxErrorException
*/
String unavailableCardCode(String cardId, String code, String reason) throws WxErrorException;

}

+ 26
- 2
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java Целия файл

@@ -15,6 +15,7 @@ import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateResult;
import me.chanjar.weixin.mp.bean.card.WxMpCardQrcodeCreateResult;
import me.chanjar.weixin.mp.bean.result.WxMpCardResult;
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -267,8 +268,9 @@ public class WxMpCardServiceImpl implements WxMpCardService {

/**
* 创建卡券二维码
* @param cardId 卡券编号
* @param outerStr 二维码标识
*
* @param cardId 卡券编号
* @param outerStr 二维码标识
* @param expiresIn 失效时间,单位秒,不填默认365天
* @return
* @throws WxErrorException
@@ -301,4 +303,26 @@ public class WxMpCardServiceImpl implements WxMpCardService {
String response = this.wxMpService.post(CARD_LANDING_PAGE_CREAET, GSON.toJson(request));
return WxMpCardLandingPageCreateResult.fromJson(response);
}

/**
* 将用户的卡券设置为失效状态
* 详见:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025272&anchor=9
*
* @param cardId 卡券编号
* @param code 用户会员卡号
* @param reason 设置为失效的原因
* @return
* @throws WxErrorException
*/
@Override
public String unavailableCardCode(String cardId, String code, String reason) throws WxErrorException {
if (StringUtils.isAnyBlank(cardId, code, reason))
throw new WxErrorException(WxError.builder().errorCode(41012).errorMsg("参数不完整").build());
JsonObject jsonRequest = new JsonObject();
jsonRequest.addProperty("card_id", cardId);
jsonRequest.addProperty("code", code);
jsonRequest.addProperty("reason", reason);
String response = this.wxMpService.post(CARD_CODE_UNAVAILABLE, GSON.toJson(jsonRequest));
return response;
}
}

+ 6
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/AdvancedInfo.java Целия файл

@@ -56,6 +56,12 @@ public class AdvancedInfo implements Serializable {
@SerializedName("time_limit")
private TimeLimit timeLimit;

/**
* 是否可以分享朋友
*/
@SerializedName("share_friends")
private Boolean shareFriends;

public void addBusinessService(BusinessServiceType businessServiceType) {
if (businessServiceType != null) {
if (businessServiceList == null)


+ 6
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/BaseInfo.java Целия файл

@@ -34,6 +34,12 @@ public class BaseInfo implements Serializable {
@SerializedName("pay_info")
private PayInfo payInfo;

/**
* 是否设置该会员卡中部的按钮同时支持微信支付刷卡和会员卡二维码
*/
@SerializedName("is_pay_and_qrcode")
private boolean isPayAndQrcode;

/**
* 商户名字,字数上限为12个汉字
*/


+ 0
- 6
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/SwipeCard.java Целия файл

@@ -21,12 +21,6 @@ public class SwipeCard implements Serializable {
@SerializedName("is_swipe_card")
private boolean isSwipeCard;

/**
* 是否设置该会员卡中部的按钮同时支持微信支付刷卡和会员卡二维码
*/
@SerializedName("is_pay_and_qrcode")
private boolean isPayAndQrcode;

public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}


+ 9
- 0
weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java Целия файл

@@ -91,4 +91,13 @@ public class WxMpCardServiceImplTest {
System.out.println(result);
}

@Test
public void testUnavailableCardCode() throws Exception {
String cardId = "p2iQk1luzj50RHue6yeTPQpAx_Z4";
String code = "134905347310";
String reason = "换成新卡了";
String result = this.wxService.getCardService().unavailableCardCode(cardId, code, reason);
assertNotNull(result);
System.out.println(result);
}
}

Зареждане…
Отказ
Запис