Skip to content

Commit 115f910

Browse files
authored
🆕 #1768 微信支付增加电商收付通完结分账和退款接口
* 微信收付通增加完结分账和退款接口
1 parent b660bfd commit 115f910

File tree

5 files changed

+572
-0
lines changed

5 files changed

+572
-0
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
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_5.shtml
12+
* </pre>
13+
* @author: f00lish
14+
* @date: 2020/09/12
15+
*/
16+
@Data
17+
@Builder
18+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
19+
@AllArgsConstructor(access = AccessLevel.PRIVATE)
20+
public class FinishOrderRequest implements Serializable {
21+
22+
private static final long serialVersionUID = -8662837652326828377L;
23+
24+
/**
25+
* <pre>
26+
* 字段名:二级商户号
27+
* 变量名:sub_mchid
28+
* 是否必填:是
29+
* 类型:string(32)
30+
* 描述:
31+
* 分账出资的电商平台二级商户,填写微信支付分配的商户号。
32+
* 示例值:1900000109
33+
* </pre>
34+
*/
35+
@SerializedName(value = "sub_mchid")
36+
private String subMchid;
37+
38+
/**
39+
* <pre>
40+
* 字段名:微信订单号
41+
* 变量名:transaction_id
42+
* 是否必填:是
43+
* 类型:string(32)
44+
* 描述:
45+
* 微信支付订单号。
46+
* 示例值:4208450740201411110007820472
47+
* </pre>
48+
*/
49+
@SerializedName(value = "transaction_id")
50+
private String transactionId;
51+
52+
/**
53+
* <pre>
54+
* 字段名:商户分账单号
55+
* 变量名:out_order_no
56+
* 是否必填:是
57+
* 类型:string(64)
58+
* 描述:
59+
* 商户系统内部的分账单号,在商户系统内部唯一(单次分账、多次分账、完结分账应使用不同的商户分账单号),同一分账单号多次请求等同一次。
60+
* 示例值:P20150806125346
61+
* </pre>
62+
*/
63+
@SerializedName(value = "out_order_no")
64+
private String outOrderNo;
65+
66+
/**
67+
* <pre>
68+
* 字段名:分账描述
69+
* 变量名:description
70+
* 是否必填:是
71+
* 类型:string(80)
72+
* 描述:
73+
* 分账的原因描述,分账账单中需要体现。
74+
* 示例值:分给商户1900000109
75+
* </pre>
76+
*/
77+
@SerializedName(value = "description")
78+
private String description;
79+
80+
81+
}
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
package com.github.binarywang.wxpay.bean.ecommerce;
2+
3+
/**
4+
* @author: f00lish
5+
* @date: 2020/09/17
6+
*/
7+
8+
import com.google.gson.annotations.SerializedName;
9+
import lombok.*;
10+
11+
import java.io.Serializable;
12+
13+
/**
14+
* 退款申请
15+
* * <pre>
16+
* * 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/refunds/chapter3_1.shtml
17+
* * </pre>
18+
* @author: f00lish
19+
* @date: 2020/09/14
20+
*/
21+
@Data
22+
@Builder
23+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
24+
@AllArgsConstructor(access = AccessLevel.PRIVATE)
25+
public class RefundsRequest implements Serializable {
26+
private static final long serialVersionUID = -3186851559004865784L;
27+
28+
/**
29+
* <pre>
30+
* 字段名:二级商户号
31+
* 变量名:sub_mchid
32+
* 是否必填:是
33+
* 类型:string(32)
34+
* 描述:
35+
* 微信支付分配二级商户的商户号。
36+
* 示例值:1900000109
37+
* </pre>
38+
*/
39+
@SerializedName(value = "sub_mchid")
40+
private String subMchid;
41+
42+
/**
43+
* <pre>
44+
* 字段名:电商平台APPID
45+
* 变量名:sp_appid
46+
* 是否必填:是
47+
* 类型:string(32)
48+
* 描述:
49+
* 电商平台在微信公众平台申请服务号对应的APPID,申请商户功能的时候微信支付会配置绑定关系。
50+
* 示例值:wx8888888888888888
51+
* </pre>
52+
*/
53+
@SerializedName(value = "sp_appid")
54+
private String spAppid;
55+
56+
/**
57+
* <pre>
58+
* 字段名:二级商户APPID
59+
* 变量名:sub_appid
60+
* 是否必填:否
61+
* 类型:string(32)
62+
* 描述:
63+
* 二级商户在微信申请公众号成功后分配的帐号ID,需要电商平台侧配置绑定关系才能传参。
64+
* 示例值:wxd678efh567hg6999
65+
* </pre>
66+
*/
67+
@SerializedName(value = "sub_appid")
68+
private String subAppid;
69+
70+
/**
71+
* <pre>
72+
* 字段名:微信订单号
73+
* 变量名:transaction_id
74+
* 是否必填:与out_order_no二选一
75+
* 类型:string(32)
76+
* 描述:
77+
* 微信支付订单号。
78+
* 示例值:4208450740201411110007820472
79+
* </pre>
80+
*/
81+
@SerializedName(value = "transaction_id")
82+
private String transactionId;
83+
84+
/**
85+
* <pre>
86+
* 字段名:商户订单号
87+
* 变量名:out_order_no
88+
* 是否必填:与transaction_id二选一
89+
* 类型:string(64)
90+
* 描述:
91+
* 原支付交易对应的商户订单号。
92+
* 示例值:P20150806125346
93+
* </pre>
94+
*/
95+
@SerializedName(value = "out_order_no")
96+
private String outOrderNo;
97+
98+
/**
99+
* <pre>
100+
* 字段名:商户退款单号
101+
* 变量名:out_refund_no
102+
* 是否必填:是
103+
* 类型:string(64)
104+
* 描述:
105+
* 商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@,同一退款单号多次请求只退一笔。
106+
* 示例值:1217752501201407033233368018
107+
* </pre>
108+
*/
109+
@SerializedName(value = "out_refund_no")
110+
private String outRefundNo;
111+
112+
/**
113+
* <pre>
114+
* 字段名:退款原因
115+
* 变量名:reason
116+
* 是否必填:是
117+
* 类型:string(80)
118+
* 描述:
119+
* 若商户传入,会在下发给用户的退款消息中体现退款原因。
120+
* 注意:若订单退款金额≤1元,且属于部分退款,则不会在退款消息中体现退款原因
121+
* 示例值:商品已售完
122+
* </pre>
123+
*/
124+
@SerializedName(value = "reason")
125+
private String reason;
126+
127+
/**
128+
* <pre>
129+
* 字段名:订单金额
130+
* 变量名:amount
131+
* 是否必填:是
132+
* 类型:object
133+
* 描述:
134+
* 订单金额信息
135+
* </pre>
136+
*/
137+
@SerializedName(value = "amount")
138+
private Amount amount;
139+
140+
/**
141+
* <pre>
142+
* 字段名:退款结果回调url
143+
* 变量名:notify_url
144+
* 是否必填:是
145+
* 类型:string(256)
146+
* 描述:
147+
* 异步接收微信支付退款结果通知的回调地址,通知url必须为外网可访问的url,不能携带参数。 如果参数中传了notify_url,则商户平台上配置的回调地址将不会生效,优先回调当前传的地址。
148+
* 示例值:https://weixin.qq.com
149+
* </pre>
150+
*/
151+
@SerializedName(value = "notify_url")
152+
private String notifyUrl;
153+
154+
@Data
155+
@Builder
156+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
157+
@AllArgsConstructor(access = AccessLevel.PRIVATE)
158+
public static class Amount implements Serializable {
159+
160+
private static final long serialVersionUID = 7383027142329410399L;
161+
162+
/**
163+
* <pre>
164+
* 字段名:退款金额
165+
* 变量名:refund
166+
* 是否必填:是
167+
* 类型:int
168+
* 描述:
169+
* 退款金额,币种的最小单位,只能为整数,不能超过原订单支付金额。
170+
* 示例值:888
171+
* </pre>
172+
*/
173+
@SerializedName(value = "refund")
174+
private Integer refund;
175+
176+
/**
177+
* <pre>
178+
* 字段名:原订单金额
179+
* 变量名:total
180+
* 是否必填:是
181+
* 类型:int64
182+
* 描述:
183+
* 订单总金额,单位为分。
184+
* 示例值:888
185+
* </pre>
186+
*/
187+
@SerializedName(value = "total")
188+
private Integer total;
189+
190+
/**
191+
* <pre>
192+
* 字段名:币类型
193+
* 变量名:currency
194+
* 是否必填:否
195+
* 类型:string(18)
196+
* 描述:
197+
* 符合ISO 4217标准的三位字母代码,目前只支持人民币:CNY。
198+
* 示例值:CNY
199+
* </pre>
200+
*/
201+
@SerializedName(value = "currency")
202+
private String currency;
203+
204+
}
205+
206+
}

0 commit comments

Comments
 (0)