Skip to content

Commit 126750b

Browse files
authored
🎨 #4022 【视频号】小店“拒绝售后”接口添加拒绝凭证参数支持
1 parent 990eb71 commit 126750b

4 files changed

Lines changed: 51 additions & 1 deletion

File tree

weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/WxChannelAfterSaleService.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,22 @@ AfterSaleListResponse listIds(Long beginCreateTime, Long endCreateTime, String n
7777
*/
7878
WxChannelBaseResponse reject(String afterSaleOrderId, String rejectReason, Integer rejectReasonType) throws WxErrorException;
7979

80+
/**
81+
* 拒绝售后(支持拒绝凭证)
82+
* 文档地址 https://developers.weixin.qq.com/doc/channels/API/aftersale/rejectapply.html
83+
*
84+
* @param afterSaleOrderId 售后单号
85+
* @param rejectReason 拒绝原因
86+
* @param rejectReasonType 拒绝原因枚举值
87+
* @param rejectCertificates 拒绝凭证图片列表,可使用图片上传接口获取media_id
88+
* @see #getRejectReason()
89+
* @return BaseResponse
90+
*
91+
* @throws WxErrorException 异常
92+
*/
93+
WxChannelBaseResponse reject(String afterSaleOrderId, String rejectReason, Integer rejectReasonType,
94+
List<String> rejectCertificates) throws WxErrorException;
95+
8096
/**
8197
* 上传退款凭证
8298
*

weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/WxChannelAfterSaleServiceImpl.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,13 @@ public WxChannelBaseResponse accept(String afterSaleOrderId, String addressId, I
6161

6262
@Override
6363
public WxChannelBaseResponse reject(String afterSaleOrderId, String rejectReason, Integer rejectReasonType) throws WxErrorException {
64-
AfterSaleRejectParam param = new AfterSaleRejectParam(afterSaleOrderId, rejectReason, rejectReasonType);
64+
return reject(afterSaleOrderId, rejectReason, rejectReasonType, null);
65+
}
66+
67+
@Override
68+
public WxChannelBaseResponse reject(String afterSaleOrderId, String rejectReason, Integer rejectReasonType,
69+
List<String> rejectCertificates) throws WxErrorException {
70+
AfterSaleRejectParam param = new AfterSaleRejectParam(afterSaleOrderId, rejectReason, rejectReasonType, rejectCertificates);
6571
String resJson = shopService.post(AFTER_SALE_REJECT_URL, param);
6672
return ResponseUtils.decode(resJson, WxChannelBaseResponse.class);
6773
}

weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/after/AfterSaleRejectParam.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import com.fasterxml.jackson.annotation.JsonProperty;
66
import lombok.Data;
77

8+
import java.util.List;
9+
810
/**
911
* 售后单拒绝信息
1012
*
@@ -27,6 +29,12 @@ public class AfterSaleRejectParam extends AfterSaleIdParam {
2729
@JsonProperty("reject_reason_type")
2830
private Integer rejectReasonType;
2931

32+
/**
33+
* 拒绝凭证图片列表,可使用图片上传接口获取media_id
34+
*/
35+
@JsonProperty("reject_certificates")
36+
private List<String> rejectCertificates;
37+
3038
public AfterSaleRejectParam() {
3139
}
3240

@@ -40,4 +48,12 @@ public AfterSaleRejectParam(String afterSaleOrderId, String rejectReason, Intege
4048
this.rejectReason = rejectReason;
4149
this.rejectReasonType = rejectReasonType;
4250
}
51+
52+
public AfterSaleRejectParam(String afterSaleOrderId, String rejectReason, Integer rejectReasonType,
53+
List<String> rejectCertificates) {
54+
super(afterSaleOrderId);
55+
this.rejectReason = rejectReason;
56+
this.rejectReasonType = rejectReasonType;
57+
this.rejectCertificates = rejectCertificates;
58+
}
4359
}

weixin-java-channel/src/test/java/me/chanjar/weixin/channel/api/impl/WxChannelAfterSaleServiceImplTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,18 @@ public void testReject() throws WxErrorException {
7070
assertTrue(response.isSuccess());
7171
}
7272

73+
@Test
74+
public void testRejectWithCertificates() throws WxErrorException {
75+
WxChannelAfterSaleService afterSaleService = channelService.getAfterSaleService();
76+
String afterSaleOrderId = "";
77+
String rejectReason = null;
78+
List<String> rejectCertificates = new ArrayList<>(4);
79+
rejectCertificates.add("THE_FILE_ID_1");
80+
WxChannelBaseResponse response = afterSaleService.reject(afterSaleOrderId, rejectReason, 1, rejectCertificates);
81+
assertNotNull(response);
82+
assertTrue(response.isSuccess());
83+
}
84+
7385
@Test
7486
public void testUploadRefundEvidence() throws WxErrorException {
7587
WxChannelAfterSaleService afterSaleService = channelService.getAfterSaleService();

0 commit comments

Comments
 (0)