1
0
mirror of synced 2026-10-10 17:02:13 +08:00

🎨 #4022 【视频号】小店“拒绝售后”接口添加拒绝凭证参数支持

This commit is contained in:
Copilot
2026-06-05 18:29:15 +08:00
committed by GitHub
parent 990eb71703
commit 126750b298
4 changed files with 51 additions and 1 deletions

View File

@@ -77,6 +77,22 @@ public interface WxChannelAfterSaleService {
*/
WxChannelBaseResponse reject(String afterSaleOrderId, String rejectReason, Integer rejectReasonType) throws WxErrorException;
/**
* 拒绝售后(支持拒绝凭证)
* 文档地址 https://developers.weixin.qq.com/doc/channels/API/aftersale/rejectapply.html
*
* @param afterSaleOrderId 售后单号
* @param rejectReason 拒绝原因
* @param rejectReasonType 拒绝原因枚举值
* @param rejectCertificates 拒绝凭证图片列表,可使用图片上传接口获取media_id
* @see #getRejectReason()
* @return BaseResponse
*
* @throws WxErrorException 异常
*/
WxChannelBaseResponse reject(String afterSaleOrderId, String rejectReason, Integer rejectReasonType,
List<String> rejectCertificates) throws WxErrorException;
/**
* 上传退款凭证
*

View File

@@ -61,7 +61,13 @@ public class WxChannelAfterSaleServiceImpl implements WxChannelAfterSaleService
@Override
public WxChannelBaseResponse reject(String afterSaleOrderId, String rejectReason, Integer rejectReasonType) throws WxErrorException {
AfterSaleRejectParam param = new AfterSaleRejectParam(afterSaleOrderId, rejectReason, rejectReasonType);
return reject(afterSaleOrderId, rejectReason, rejectReasonType, null);
}
@Override
public WxChannelBaseResponse reject(String afterSaleOrderId, String rejectReason, Integer rejectReasonType,
List<String> rejectCertificates) throws WxErrorException {
AfterSaleRejectParam param = new AfterSaleRejectParam(afterSaleOrderId, rejectReason, rejectReasonType, rejectCertificates);
String resJson = shopService.post(AFTER_SALE_REJECT_URL, param);
return ResponseUtils.decode(resJson, WxChannelBaseResponse.class);
}

View File

@@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
/**
* 售后单拒绝信息
*
@@ -27,6 +29,12 @@ public class AfterSaleRejectParam extends AfterSaleIdParam {
@JsonProperty("reject_reason_type")
private Integer rejectReasonType;
/**
* 拒绝凭证图片列表,可使用图片上传接口获取media_id
*/
@JsonProperty("reject_certificates")
private List<String> rejectCertificates;
public AfterSaleRejectParam() {
}
@@ -40,4 +48,12 @@ public class AfterSaleRejectParam extends AfterSaleIdParam {
this.rejectReason = rejectReason;
this.rejectReasonType = rejectReasonType;
}
public AfterSaleRejectParam(String afterSaleOrderId, String rejectReason, Integer rejectReasonType,
List<String> rejectCertificates) {
super(afterSaleOrderId);
this.rejectReason = rejectReason;
this.rejectReasonType = rejectReasonType;
this.rejectCertificates = rejectCertificates;
}
}

View File

@@ -70,6 +70,18 @@ public class WxChannelAfterSaleServiceImplTest {
assertTrue(response.isSuccess());
}
@Test
public void testRejectWithCertificates() throws WxErrorException {
WxChannelAfterSaleService afterSaleService = channelService.getAfterSaleService();
String afterSaleOrderId = "";
String rejectReason = null;
List<String> rejectCertificates = new ArrayList<>(4);
rejectCertificates.add("THE_FILE_ID_1");
WxChannelBaseResponse response = afterSaleService.reject(afterSaleOrderId, rejectReason, 1, rejectCertificates);
assertNotNull(response);
assertTrue(response.isSuccess());
}
@Test
public void testUploadRefundEvidence() throws WxErrorException {
WxChannelAfterSaleService afterSaleService = channelService.getAfterSaleService();