Skip to content

Commit b432b4a

Browse files
committed
🆕 #2672 【微信支付】增加商家转账的更多接口
1 parent 541589b commit b432b4a

17 files changed

+2018
-75
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,384 @@
1+
package com.github.binarywang.wxpay.bean.merchanttransfer;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Builder;
6+
import lombok.Data;
7+
import lombok.NoArgsConstructor;
8+
import lombok.experimental.Accessors;
9+
10+
import java.io.Serializable;
11+
import java.util.List;
12+
13+
/**
14+
* The type Batches query result.
15+
*
16+
* @author glz
17+
* @date 2022 /6/11
18+
*/
19+
@Data
20+
@Builder
21+
@NoArgsConstructor
22+
@AllArgsConstructor
23+
@Accessors(chain = true)
24+
public class BatchesQueryResult implements Serializable {
25+
private static final long serialVersionUID = -4160610913430904527L;
26+
/**
27+
* <pre>
28+
* 字段名:最大资源条数
29+
* 变量名:limit
30+
* 是否必填:否
31+
* 类型:int
32+
* 描述:
33+
* query该次请求可返回的最大资源(转账明细单)条数,最小20条,最大100条,不传则默认20条。不足20条按实际条数返回
34+
* 示例值:20
35+
* </pre>
36+
*/
37+
@SerializedName("limit")
38+
private Integer limit;
39+
40+
/**
41+
* <pre>
42+
* 字段名:请求资源起始位置
43+
* 变量名:transfer_batch
44+
* 是否必填:否
45+
* 类型:int
46+
* 描述:
47+
* query该次请求资源(转账明细单)的起始位置,从0开始,转账明细单列表为空时不返回
48+
* 示例值:1
49+
* </pre>
50+
*/
51+
@SerializedName("offset")
52+
private Integer offset;
53+
/**
54+
* <pre>
55+
* 字段名:转账批次单
56+
* 变量名:transfer_batch
57+
* 是否必填:是
58+
* 类型:object
59+
* 描述:
60+
* 转账批次单基本信息
61+
* </pre>
62+
*/
63+
@SerializedName("transfer_batch")
64+
private TransferBatch transferBatch;
65+
66+
/**
67+
* <pre>
68+
* 字段名:转账明细单列表
69+
* 变量名:transfer_detail_list
70+
* 是否必填:否
71+
* 类型:array
72+
* 描述:
73+
* body发起批量转账的明细列表,最多三千笔
74+
* </pre>
75+
*/
76+
@SerializedName("transfer_detail_list")
77+
private List<TransferDetail> transferDetailList;
78+
79+
/**
80+
* The type Transfer batch.
81+
*/
82+
@Data
83+
@Accessors(chain = true)
84+
public class TransferBatch implements Serializable {
85+
/**
86+
* <pre>
87+
* 字段名:商户号
88+
* 变量名:mchid
89+
* 是否必填:是
90+
* 类型:string[1,32]
91+
* 描述:
92+
* 微信支付分配的商户号
93+
* 示例值:1900001109
94+
* </pre>
95+
*/
96+
@SerializedName("mchid")
97+
private String mchid;
98+
99+
/**
100+
* <pre>
101+
* 字段名:商家批次单号
102+
* 变量名:out_batch_no
103+
* 是否必填:是
104+
* 类型:string[1,32]
105+
* 描述:
106+
* 商户系统内部的商家批次单号,在商户系统内部唯一
107+
* 示例值:plfk2020042013
108+
* </pre>
109+
*/
110+
@SerializedName("out_batch_no")
111+
private String outBatchNo;
112+
113+
/**
114+
* <pre>
115+
* 字段名:微信批次单号
116+
* 变量名:batch_id
117+
* 是否必填:是
118+
* 类型:string[1,32]
119+
* 描述:
120+
* 微信批次单号,微信商家转账系统返回的唯一标识
121+
* 示例值:1030000071100999991182020050700019480001
122+
* </pre>
123+
*/
124+
@SerializedName("batch_id")
125+
private String batchId;
126+
127+
/**
128+
* <pre>
129+
* 字段名:直连商户的appid
130+
* 变量名:appid
131+
* 是否必填:是
132+
* 类型:string[1,32]
133+
* 描述:
134+
* 申请商户号的appid或商户号绑定的appid(企业号corpid即为此appid)
135+
* 示例值:wxf636efh567hg4356
136+
* </pre>
137+
*/
138+
@SerializedName("appid")
139+
private String appid;
140+
141+
/**
142+
* <pre>
143+
* 字段名:批次状态
144+
* 变量名:batch_status
145+
* 是否必填:是
146+
* 类型:string[1,32]
147+
* 描述:
148+
* 枚举值:
149+
* WAIT_PAY:待付款,商户员工确认付款阶段
150+
* ACCEPTED:已受理。批次已受理成功,若发起批量转账的30分钟后,转账批次单仍处于该状态,可能原因是商户账户余额不足等。商户可查询账户资金流水,若该笔转账批次单的扣款已经发生,则表示批次已经进入转账中,请再次查单确认
151+
* PROCESSING:转账中。已开始处理批次内的转账明细单
152+
* FINISHED:已完成。批次内的所有转账明细单都已处理完成
153+
* CLOSED:已关闭。可查询具体的批次关闭原因确认
154+
* 示例值:ACCEPTED
155+
* </pre>
156+
*/
157+
@SerializedName("batch_status")
158+
private String batchStatus;
159+
160+
/**
161+
* <pre>
162+
* 字段名:批次类型
163+
* 变量名:batch_type
164+
* 是否必填:是
165+
* 类型:string[1,32]
166+
* 描述:
167+
* 枚举值:
168+
* API:API方式发起
169+
* WEB:页面方式发起
170+
* 示例值:API
171+
* </pre>
172+
*/
173+
@SerializedName("batch_type")
174+
private String batchType;
175+
176+
/**
177+
* <pre>
178+
* 字段名:批次名称
179+
* 变量名:batch_name
180+
* 是否必填:是
181+
* 类型:string[1,32]
182+
* 描述:
183+
* 该笔批量转账的名称
184+
* 示例值:2019年1月深圳分部报销单
185+
* </pre>
186+
*/
187+
@SerializedName("batch_name")
188+
private String batchName;
189+
190+
/**
191+
* <pre>
192+
* 字段名:批次备注
193+
* 变量名:batch_remark
194+
* 是否必填:是
195+
* 类型:string[1,32]
196+
* 描述:
197+
* 转账说明,UTF8编码,最多允许32个字符
198+
* 示例值:2019年1月深圳分部报销单
199+
* </pre>
200+
*/
201+
@SerializedName("batch_remark")
202+
private String batchRemark;
203+
204+
/**
205+
* <pre>
206+
* 字段名:批次关闭原因
207+
* 变量名:close_reason
208+
* 是否必填:否
209+
* 类型:string[1,64]
210+
* 描述:
211+
* 如果批次单状态为“CLOSED”(已关闭),则有关闭原因
212+
* MERCHANT_REVOCATION:商户主动撤销
213+
* OVERDUE_CLOSE:系统超时关闭
214+
* 示例值:OVERDUE_CLOSE
215+
* </pre>
216+
*/
217+
@SerializedName("close_reason")
218+
private String closeReason;
219+
220+
/**
221+
* <pre>
222+
* 字段名:转账总金额
223+
* 变量名:total_amount
224+
* 是否必填:是
225+
* 类型:int
226+
* 描述:
227+
* 转账金额单位为分
228+
* 示例值:4000000
229+
* </pre>
230+
*/
231+
@SerializedName("total_amount")
232+
private Integer totalAmount;
233+
234+
/**
235+
* <pre>
236+
* 字段名:转账总笔数
237+
* 变量名:total_num
238+
* 是否必填:是
239+
* 类型:int
240+
* 描述:
241+
* 一个转账批次单最多发起三千笔转账
242+
* 示例值:200
243+
* </pre>
244+
*/
245+
@SerializedName("total_num")
246+
private Integer totalNum;
247+
248+
/**
249+
* <pre>
250+
* 字段名:批次创建时间
251+
* 变量名:create_time
252+
* 是否必填:否
253+
* 类型:string[1,32]
254+
* 描述:
255+
* 批次受理成功时返回,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss.sss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss.sss表示时分秒毫秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒
256+
* 示例值:2015-05-20T13:29:35.120+08:00
257+
* </pre>
258+
*/
259+
@SerializedName("create_time")
260+
private String createTime;
261+
262+
/**
263+
* <pre>
264+
* 字段名:批次更新时间
265+
* 变量名:update_time
266+
* 是否必填:否
267+
* 类型:string[1,32]
268+
* 描述:
269+
* 批次最近一次状态变更的时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss.sss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss.sss表示时分秒毫秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒
270+
* 示例值:2015-05-20T13:29:35.120+08:00
271+
* </pre>
272+
*/
273+
@SerializedName("update_time")
274+
private String updateTime;
275+
276+
/**
277+
* <pre>
278+
* 字段名:转账成功金额
279+
* 变量名:success_amount
280+
* 是否必填:否
281+
* 类型:int
282+
* 描述:
283+
* 转账成功的金额,单位为分。当批次状态为“PROCESSING”(转账中)时,转账成功金额随时可能变化
284+
* 示例值:3900000
285+
* </pre>
286+
*/
287+
@SerializedName("success_amount")
288+
private Integer successAmount;
289+
290+
/**
291+
* <pre>
292+
* 字段名:转账成功笔数
293+
* 变量名:success_num
294+
* 是否必填:否
295+
* 类型:int
296+
* 描述:
297+
* 转账成功的笔数。当批次状态为“PROCESSING”(转账中)时,转账成功笔数随时可能变化
298+
* 示例值:199
299+
* </pre>
300+
*/
301+
@SerializedName("success_num")
302+
private Integer successNum;
303+
304+
/**
305+
* <pre>
306+
* 字段名:转账失败金额
307+
* 变量名:fail_amount
308+
* 是否必填:否
309+
* 类型:int
310+
* 描述:
311+
* 转账失败的金额,单位为分
312+
* 示例值:100000
313+
* </pre>
314+
*/
315+
@SerializedName("fail_amount")
316+
private Integer failAmount;
317+
318+
/**
319+
* <pre>
320+
* 字段名:转账失败笔数
321+
* 变量名:fail_num
322+
* 是否必填:否
323+
* 类型:int
324+
* 描述:
325+
* 转账失败的笔数
326+
* 示例值:1
327+
* </pre>
328+
*/
329+
@SerializedName("fail_num")
330+
private Integer failNum;
331+
}
332+
333+
/**
334+
* The type Transfer detail.
335+
*/
336+
@Data
337+
@Accessors(chain = true)
338+
public class TransferDetail implements Serializable {
339+
/**
340+
* <pre>
341+
* 字段名:微信明细单号
342+
* 变量名:detail_id
343+
* 是否必填:是
344+
* 类型:string[1,64]
345+
* 描述:
346+
* 微信支付系统内部区分转账批次单下不同转账明细单的唯一标识
347+
* 示例值:1040000071100999991182020050700019500100
348+
* </pre>
349+
*/
350+
@SerializedName("detail_id")
351+
private String detailId;
352+
353+
/**
354+
* <pre>
355+
* 字段名:商家明细单号
356+
* 变量名:out_detail_no
357+
* 是否必填:是
358+
* 类型:string[1,32]
359+
* 描述:
360+
* 商户系统内部区分转账批次单下不同转账明细单的唯一标识
361+
* 示例值:x23zy545Bd5436
362+
* </pre>
363+
*/
364+
@SerializedName("out_detail_no")
365+
private String outDetailNo;
366+
367+
/**
368+
* <pre>
369+
* 字段名:明细状态
370+
* 变量名:detail_status
371+
* 是否必填:是
372+
* 类型:string[1,32]
373+
* 描述:
374+
* 枚举值:
375+
* PROCESSING:转账中。正在处理中,转账结果尚未明确
376+
* SUCCESS:转账成功
377+
* FAIL:转账失败。需要确认失败原因后,再决定是否重新发起对该笔明细单的转账(并非整个转账批次单)
378+
* 示例值:SUCCESS
379+
* </pre>
380+
*/
381+
@SerializedName("detail_status")
382+
private String detailStatus;
383+
}
384+
}

0 commit comments

Comments
 (0)