8000 :new: #1978 【微信支付】电商支付通增加查询分账回退结果的接口方法 · binarywang/WxJava@13b484a · GitHub
[go: up one dir, main page]

Skip to content

Commit 13b484a

Browse files
authored
🆕 #1978 【微信支付】电商支付通增加查询分账回退结果的接口方法
1 parent ce62d1c commit 13b484a

File tree

3 files changed

+107
-0
lines changed

3 files changed

+107
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package com.github.binarywang.wxpay.bean.ecommerce;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.*;
5+
6+
import java.io.Serializable;
7+
8+
/**
9+
* 查询分账回退结果请求
10+
* * <pre>
11+
* * 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/profitsharing/chapter3_3.shtml
12+
* * </pre>
13+
* @author: wangrui
14+
* @date: 2021/02/20
15+
*/
16+
@Data
17+
@Builder
18+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
19+
@AllArgsConstructor(access = AccessLevel.PRIVATE)
20+
public class ReturnOrdersQueryRequest implements Serializable {
21+
/**
22+
* <pre>
23+
* 字段名:二级商户号
24+
* 变量名:sub_mchid
25+
* 是否必填:是
26+
* 类型:string(32)
27+
* 描述:
28+
* 分账出资的电商平台二级商户,填写微信支付分配的商户号。
29+
* 示例值:1900000109
30+
* </pre>
31+
*/
32+
@SerializedName(value = "sub_mchid")
33+
private String subMchid;
34+
35+
/**
36+
* <pre>
37+
* 字段名:微信分账单号
38+
* 变量名:order_id
39+
* 是否必填:与out_order_no二选一
40+
* 类型:string(64)
41+
* 描述:
42+
* 微信分账单号,微信系统返回的唯一标识。微信分账单号和商户分账单号二选一填写。
43+
* 示例值:3008450740201411110007820472
44+
* </pre>
45+
*/
46+
@SerializedName(value = "order_id")
47+
private String orderId;
48+
49+
/**
50+
* <pre>
51+
* 字段名:商户分账单号
52+
* 变量名:out_order_no
53+
* 是否必填:与order_id二选一
54+
* 类型:string(64)
55+
* 描述:
56+
* 商户系统内部的分账单号,在商户系统内部唯一(单次分账、多次分账、完结分账应使用不同的商户分账单号),同一分账单号多次请求等同一次。
57+
* 示例值:P20150806125346
58+
* </pre>
59+
*/
60+
@SerializedName(value = "out_order_no")
61+
private String outOrderNo;
62+
63+
/**
64+
* <pre>
65+
* 字段名:商户回退单号
66+
* 变量名:out_return_no
67+
* 是否必填:是
68+
* 类型:string(64)
69+
* 描述:
70+
* 此回退单号是商户在自己后台生成的一个新的回退单号,在商户后台唯一。
71+
* 示例值:P20150806125346
72+
* </pre>
73+
*/
74+
@SerializedName(value = "out_return_no")
75+
private String outReturnNo;
76+
}

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/EcommerceService.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,18 @@ public interface EcommerceService {
287287
*/
288288
ReturnOrdersResult returnOrders(ReturnOrdersRequest request) throws WxPayException;
289289

290+
/**
291+
* <pre>
292+
* 查询分账回退API
293+
* 文档地址: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/profitsharing/chapter3_3.shtml
294+
* </pre>
295+
*
296+
* @param request 查询分账回退请求
297+
* @return 返回数据 return orders result
298+
* @throws WxPayException the wx pay exception
299+
*/
300+
ReturnOrdersResult queryReturnOrders(ReturnOrdersQueryRequest request) throws WxPayException;
301+
290302
/**
291303
* <pre>
292304
* 完结分账API

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.google.common.base.CaseFormat;
1313
import com.google.gson.Gson;
1414
import com.google.gson.GsonBuilder;
15+
import org.apache.commons.lang3.StringUtils;
1516
import lombok.RequiredArgsConstructor;
1617
import org.apache.commons.beanutils.BeanMap;
1718

@@ -224,6 +225,24 @@ public ReturnOrdersResult returnOrders(ReturnOrdersRequest request) throws WxPay
224225
return GSON.fromJson(response, ReturnOrdersResult.class);
225226
}
226227

228+
@Override
229+
public ReturnOrdersResult queryReturnOrders(ReturnOrdersQueryRequest request) throws WxPayException {
230+
String subMchid = request.getSubMchid();
231+
String orderId = request.getOrderId();
232+
String outOrderNo = request.getOutOrderNo();
233+
String outReturnNo = request.getOutReturnNo();
234+
String url = null;
235+
if (StringUtils.isBlank(orderId)) {
236+
url = String.format("%s/v3/ecommerce/profitsharing/returnorders?sub_mchid=%s&out_order_no=%s&out_return_no=%s",
237+
this.payService.getPayBaseUrl(), subMchid, outOrderNo, outReturnNo);
238+
} else {
239+
url = String.format("%s/v3/ecommerce/profitsharing/returnorders?sub_mchid=%s&order_id=%s&out_return_no=%s",
240+
this.payService.getPayBaseUrl(), subMchid, orderId, outReturnNo);
241+
}
242+
String response = this.payService.getV3(URI.create(url));
243+
return GSON.fromJson(response, ReturnOrdersResult.class);
244+
}
245+
227246
@Override
228247
public ProfitSharingResult finishOrder(FinishOrderRequest request) throws WxPayException {
229248
String url = String.format("%s/v3/ecommerce/profitsharing/finish-order", this.payService.getPayBaseUrl());

0 commit comments

Comments
 (0)
0