🐛 #2338 【微信支付】营销代金券接口修复pause和restart实现的问题

This commit is contained in:
Lucas 2021-10-06 10:17:07 +08:00 committed by GitHub
parent 56d2b5f57a
commit 3c4e749ea9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 86 additions and 12 deletions

View File

@ -0,0 +1,37 @@
package com.github.binarywang.wxpay.bean.marketing;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 暂停代金券批次返回结果对象
*
* @author lichuang
*/
@NoArgsConstructor
@Data
public class FavorStocksPauseResult implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 生效时间
* <p>
* 生效时间遵循rfc3339标准格式格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONEYYYY-MM-DD表示年月日T出现在字符串中表示time元素的开头HH:mm:ss.sss表示时分秒毫秒TIMEZONE表示时区+08:00表示东八区时间领先UTC 8小时即北京时间例如2015-05-20T13:29:35.120+08:00表示北京时间2015年5月20日 13点29分35秒
* 示例值2015-05-20T13:29:35.120+08:00
*/
@SerializedName("pause_time")
private String pauseTime;
/**
* 批次号
* <p>
* 微信为每个代金券批次分配的唯一ID
* 示例值98065001
*/
@SerializedName("stock_id")
private String stockId;
}

View File

@ -0,0 +1,37 @@
package com.github.binarywang.wxpay.bean.marketing;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 重启代金券批次返回结果对象
*
* @author lichuang
*/
@NoArgsConstructor
@Data
public class FavorStocksRestartResult implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 生效时间
* <p>
* 生效时间遵循rfc3339标准格式格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONEYYYY-MM-DD表示年月日T出现在字符串中表示time元素的开头HH:mm:ss.sss表示时分秒毫秒TIMEZONE表示时区+08:00表示东八区时间领先UTC 8小时即北京时间例如2015-05-20T13:29:35.120+08:00表示北京时间2015年5月20日 13点29分35秒
* 示例值2015-05-20T13:29:35.120+08:00
*/
@SerializedName("restart_time")
private String restartTime;
/**
* 批次号
* <p>
* 微信为每个代金券批次分配的唯一ID
* 示例值98065001
*/
@SerializedName("stock_id")
private String stockId;
}

View File

@ -187,10 +187,10 @@ public interface MarketingFavorService {
* </pre>
*
* @param request 请求对象
* @return FavorCallbacksSaveResult 微信返回的结果信息
* @return FavorStocksPauseResult 微信返回的结果信息
* @throws WxPayException the wx pay exception
*/
FavorStocksStartResult pauseFavorStocksV3(String stockId, FavorStocksSetRequest request) throws WxPayException;
FavorStocksPauseResult pauseFavorStocksV3(String stockId, FavorStocksSetRequest request) throws WxPayException;
/**
* <pre>
@ -200,10 +200,10 @@ public interface MarketingFavorService {
* </pre>
*
* @param request 请求对象
* @return FavorCallbacksSaveResult 微信返回的结果信息
* @return FavorStocksRestartResult 微信返回的结果信息
* @throws WxPayException the wx pay exception
*/
FavorStocksStartResult restartFavorStocksV3(String stockId, FavorStocksSetRequest request) throws WxPayException;
FavorStocksRestartResult restartFavorStocksV3(String stockId, FavorStocksSetRequest request) throws WxPayException;
UseNotifyData parseNotifyData(String data, SignatureHeader header) throws WxPayException;

View File

@ -154,19 +154,19 @@ public class MarketingFavorServiceImpl implements MarketingFavorService {
}
@Override
public FavorStocksStartResult pauseFavorStocksV3(String stockId, FavorStocksSetRequest request) throws WxPayException {
String url = String.format("%s/v3/marketing/favor/stocks/%s/start", this.payService.getPayBaseUrl(), stockId);
public FavorStocksPauseResult pauseFavorStocksV3(String stockId, FavorStocksSetRequest request) throws WxPayException {
String url = String.format("%s/v3/marketing/favor/stocks/%s/pause", this.payService.getPayBaseUrl(), stockId);
RsaCryptoUtil.encryptFields(request, this.payService.getConfig().getVerifier().getValidCertificate());
String result = this.payService.postV3WithWechatpaySerial(url, GSON.toJson(request));
return GSON.fromJson(result, FavorStocksStartResult.class);
return GSON.fromJson(result, FavorStocksPauseResult.class);
}
@Override
public FavorStocksStartResult restartFavorStocksV3(String stockId, FavorStocksSetRequest request) throws WxPayException {
String url = String.format("%s/v3/marketing/favor/stocks/%s/start", this.payService.getPayBaseUrl(), stockId);
public FavorStocksRestartResult restartFavorStocksV3(String stockId, FavorStocksSetRequest request) throws WxPayException {
String url = String.format("%s/v3/marketing/favor/stocks/%s/restart", this.payService.getPayBaseUrl(), stockId);
RsaCryptoUtil.encryptFields(request, this.payService.getConfig().getVerifier().getValidCertificate());
String result = this.payService.postV3WithWechatpaySerial(url, GSON.toJson(request));
return GSON.fromJson(result, FavorStocksStartResult.class);
return GSON.fromJson(result, FavorStocksRestartResult.class);
}
/**

View File

@ -175,7 +175,7 @@ public class MarketingFavorServiceImplTest {
public void testPauseFavorStocksV3() throws WxPayException {
FavorStocksSetRequest request = new FavorStocksSetRequest();
request.setStockCreatorMchid(wxPayService.getConfig().getMchId());
FavorStocksStartResult result = wxPayService.getMarketingFavorService().pauseFavorStocksV3(stockId, request);
FavorStocksPauseResult result = wxPayService.getMarketingFavorService().pauseFavorStocksV3(stockId, request);
log.info("result: {}", GSON.toJson(result));
}
@ -184,7 +184,7 @@ public class MarketingFavorServiceImplTest {
public void testRestartFavorStocksV3() throws WxPayException {
FavorStocksSetRequest request = new FavorStocksSetRequest();
request.setStockCreatorMchid(wxPayService.getConfig().getMchId());
FavorStocksStartResult result = wxPayService.getMarketingFavorService().restartFavorStocksV3(stockId, request);
FavorStocksRestartResult result = wxPayService.getMarketingFavorService().restartFavorStocksV3(stockId, request);
log.info("result: {}", GSON.toJson(result));
}