Skip to content

Commit 87322e6

Browse files
wujingzhong2018binarywang
authored andcommitted
🆕【微信支付】增加品牌红包商家转账到零钱发放、查询批次、查询明细等接口
1 parent 26057b0 commit 87322e6

13 files changed

+1453
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.github.binarywang.wxpay.bean.brandmerchanttransfer.request;
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+
12+
/**
13+
* 品牌红包商家批次单号查询批次单API参数
14+
*
15+
* @author moran
16+
*/
17+
@Data
18+
@Builder
19+
@NoArgsConstructor
20+
@AllArgsConstructor
21+
@Accessors(chain = true)
22+
public class BrandMerchantBatchesQueryRequest implements Serializable {
23+
private static final long serialVersionUID = 1L;
24+
25+
/**
26+
* <pre>
27+
* 字段名:商家品牌红包批次单号
28+
* 变量名:out_batch_no
29+
* 是否必填:是
30+
* 类型:string[1, 32]
31+
* 描述:
32+
* path商户系统内部的商家品牌红包批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一
33+
* 示例值:plfk2020042013
34+
* </pre>
35+
*/
36+
@SerializedName("out_batch_no")
37+
private String outBatchNo;
38+
39+
/**
40+
* <pre>
41+
* 字段名:是否需要查询品牌红包明细单
42+
* 变量名:need_query_detail
43+
* 是否必填:否
44+
* 类型:boolean
45+
* 描述:
46+
* query枚举值:
47+
* true:是;
48+
* false:否,默认否。
49+
* 商户可选择是否查询指定状态的品牌红包明细单,当品牌红包批次单状态为“FINISHED”(已完成)时,才会返回满足条件的品牌红包明细单
50+
* </pre>
51+
*/
52+
@SerializedName("need_query_detail")
53+
private Boolean needQueryDetail;
54+
55+
/**
56+
* <pre>
57+
* 字段名:品牌红包明细单状态
58+
* 变量名:detail_state
59+
* 是否必填:否
60+
* 类型:string
61+
* 描述:
62+
* query查询指定状态的品牌红包明细单信息
63+
* DETAIL_VIEW_ALL - 全部,需要同时查询发送成功和发送失败的品牌红包明细单
64+
* DETAIL_VIEW_SUCCESS - 发送成功,只查询发送成功的品牌红包明细单
65+
* DETAIL_VIEW_FAIL - 发送失败,只查询发送失败的品牌红包明细单
66+
* 示例值:DETAIL_VIEW_FAIL
67+
* </pre>
68+
*/
69+
@SerializedName("detail_state")
70+
private String detailState;
71+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.github.binarywang.wxpay.bean.brandmerchanttransfer.request;
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+
12+
/**
13+
* 品牌红包商家明细单号查询明细单API参数
14+
*
15+
* @author moran
16+
*/
17+
@Data
18+
@Builder
19+
@NoArgsConstructor
20+
@AllArgsConstructor
21+
@Accessors(chain = true)
22+
public class BrandMerchantDetailsQueryRequest implements Serializable {
23+
private static final long serialVersionUID = 1L;
24+
25+
/**
26+
* <pre>
27+
* 字段名:商家品牌红包批次单号
28+
* 变量名:out_batch_no
29+
* 是否必填:是
30+
* 类型:string[5, 32]
31+
* 描述:
32+
* path商户系统内部的商家品牌红包批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一
33+
* 示例值:plfk2020042013
34+
* </pre>
35+
*/
36+
@SerializedName("out_batch_no")
37+
private String outBatchNo;
38+
39+
/**
40+
* <pre>
41+
* 字段名:商家品牌红包明细单号
42+
* 变量名:out_detail_no
43+
* 是否必填:是
44+
* 类型:string[5, 32]
45+
* 描述:
46+
* path商户系统内部区分品牌红包批次单下不同品牌红包明细单的唯一标识,要求此参数只能由数字、大小写字母组成
47+
* 示例值:x23zy545Bd5436
48+
* </pre>
49+
*/
50+
@SerializedName("out_detail_no")
51+
private String outDetailNo;
52+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,249 @@
1+
package com.github.binarywang.wxpay.bean.brandmerchanttransfer.request;
2+
3+
import com.github.binarywang.wxpay.v3.SpecEncrypt;
4+
import com.google.gson.annotations.SerializedName;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Builder;
7+
import lombok.Data;
8+
import lombok.NoArgsConstructor;
9+
10+
import java.io.Serializable;
11+
import java.util.List;
12+
13+
/**
14+
* 发起品牌红包商家转账API参数
15+
*
16+
* @author moran
17+
**/
18+
@Data
19+
@Builder(builderMethodName = "newBuilder")
20+
@NoArgsConstructor
21+
@AllArgsConstructor
22+
public class BrandTransferBatchesRequest implements Serializable {
23+
private static final long serialVersionUID = 1L;
24+
25+
/**
26+
* <pre>
27+
* 字段名:品牌ID
28+
* 变量名:brand_id
29+
* 是否必填:是
30+
* 类型:int
31+
* 描述:
32+
* body品牌在微信支付进行品牌认证后的唯一标识品牌ID
33+
* 示例值:1234
34+
* </pre>
35+
*/
36+
@SerializedName("brand_id")
37+
private Integer brandId;
38+
39+
/**
40+
* <pre>
41+
* 字段名:品牌AppID
42+
* 变量名:brand_appid
43+
* 是否必填:是
44+
* 类型:string[1, 32]
45+
* 描述:
46+
* body品牌商户在微信申请公众号/小程序或移动应用成功后分配的账号ID,需与品牌有绑定关系,使用品牌的AppID时需要填写
47+
* 示例值:wxf636efh567hg4356
48+
* </pre>
49+
*/
50+
@SerializedName("brand_appid")
51+
private String brandAppid;
52+
53+
/**
54+
* <pre>
55+
* 字段名:品牌红包发放场景
56+
* 变量名:scene
57+
* 是否必填:是
58+
* 类型:string
59+
* 描述:
60+
* body品牌红包发放场景,用户可以在指定的场景领取到红包
61+
* CUSTOM_SEND - 自定义发放场景,自定义场景发放红包,使用已配置的自定义发放模板进行发红包
62+
* 示例值:CUSTOM_SEND
63+
* </pre>
64+
*/
65+
@SerializedName("scene")
66+
private String scene;
67+
68+
/**
69+
* <pre>
70+
* 字段名:品牌红包模板ID
71+
* 变量名:template_id
72+
* 是否必填:是
73+
* 类型:string[1, 128]
74+
* 描述:
75+
* body品牌主配置的品牌红包模板ID
76+
* 示例值:123400001
77+
* </pre>
78+
*/
79+
@SerializedName("template_id")
80+
private String templateId;
81+
82+
/**
83+
* <pre>
84+
* 字段名:商家品牌红包批次单号
85+
* 变量名:out_batch_no
86+
* 是否必填:是
87+
* 类型:string[5, 32]
88+
* 描述:
89+
* body品牌商户系统内部的品牌红包批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一
90+
* 示例值:plfk2020042013
91+
* </pre>
92+
*/
93+
@SerializedName("out_batch_no")
94+
private String outBatchNo;
95+
96+
/**
97+
* <pre>
98+
* 字段名:品牌红包批次名称
99+
* 变量名:batch_name
100+
* 是否必填:是
101+
* 类型:string[1, 32]
102+
* 描述:
103+
* body该品牌红包批次的名称,展示在用户红包领取通知的红包活动名称
104+
* 示例值:双十一营销用品牌红包
105+
* </pre>
106+
*/
107+
@SerializedName("batch_name")
108+
private String batchName;
109+
110+
/**
111+
* <pre>
112+
* 字段名:品牌红包批次备注
113+
* 变量名:batch_remark
114+
* 是否必填:是
115+
* 类型:string[1, 32]
116+
* 描述:
117+
* body该批次品牌红包的备注,仅用于品牌商户内部管理
118+
* 示例值:双十一营销用品牌红包
119+
* </pre>
120+
*/
121+
@SerializedName("batch_remark")
122+
private String batchRemark;
123+
124+
/**
125+
* <pre>
126+
* 字段名:总金额
127+
* 变量名:total_amount
128+
* 是否必填:是
129+
* 类型:int
130+
* 描述:
131+
* body品牌红包总金额必须与品牌红包批次内所有品牌红包明细发送金额之和保持一致,否则无法发送品牌红包
132+
* 示例值:10000
133+
* </pre>
134+
*/
135+
@SerializedName("total_amount")
136+
private Integer totalAmount;
137+
138+
/**
139+
* <pre>
140+
* 字段名:总笔数
141+
* 变量名:total_num
142+
* 是否必填:是
143+
* 类型:int
144+
* 描述:
145+
* body一个品牌红包批次单最多发送10笔品牌红包明细。品牌红包总笔数必须与批次内所有品牌红包明细之和保持一致,否则无法发送品牌红包
146+
* 示例值:10
147+
* </pre>
148+
*/
149+
@SerializedName("total_num")
150+
private Integer totalNum;
151+
152+
/**
153+
* <pre>
154+
* 字段名:品牌红包明细列表
155+
* 变量名:detail_list
156+
* 是否必填:否
157+
* 类型:array
158+
* 描述:
159+
* body品牌红包明细列表,最多10笔
160+
* </pre>
161+
*/
162+
@SpecEncrypt
163+
@SerializedName("detail_list")
164+
private List<BrandTransferDetail> detailList;
165+
166+
@Data
167+
@Builder(builderMethodName = "newBuilder")
168+
@AllArgsConstructor
169+
@NoArgsConstructor
170+
public static class BrandTransferDetail {
171+
172+
/**
173+
* <pre>
174+
* 字段名:商家品牌红包明细单号
175+
* 变量名:out_detail_no
176+
* 是否必填:是
177+
* 类型:string[1, 32]
178+
* 描述:
179+
* 品牌商户系统内部区分品牌红包批次单下不同品牌红包明细单的唯一标识,要求此参数只能由数字、大小写字母组成
180+
* 示例值:x23zy545Bd5436
181+
* </pre>
182+
*/
183+
@SerializedName("out_detail_no")
184+
private String outDetailNo;
185+
186+
/**
187+
* <pre>
188+
* 字段名:红包金额(单位:分)
189+
* 变量名:amount
190+
* 是否必填:是
191+
* 类型:int
192+
* 描述:
193+
* 红包金额单位为“分”,红包金额的最大限额取决于商户在商户平台的设置额度
194+
* 示例值:100
195+
* </pre>
196+
*/
197+
@SerializedName("amount")
198+
private Integer amount;
199+
200+
/**
201+
* <pre>
202+
* 字段名:接收红包用户OpenID
203+
* 变量名:openid
204+
* 是否必填:是
205+
* 类型:string[1, 64]
206+
* 描述:
207+
* 接收红包的用户OpenID,该OpenID为用户在上方指定的AppID下的唯一标识。
208+
* 注:openid是微信用户在公众号appid下的唯一用户标识(appid不同,则获取到的openid就不同),可用于永久标记一个用户。
209+
* 获取openid:https://pay.weixin.qq.com/wiki/doc/apiv3/terms_definition/chapter1_1_3.shtml
210+
* 示例值:o-MYE42l80oelYMDE34nYD456Xoy
211+
* </pre>
212+
*/
213+
@SerializedName("openid")
214+
private String openid;
215+
216+
/**
217+
* <pre>
218+
* 字段名:接收红包用户姓名
219+
* 变量名:user_name
220+
* 是否必填:否
221+
* 类型:string[1, 1024]
222+
* 描述:
223+
* 1、明细转账金额 >= 2,000,收款用户姓名必填;
224+
* 2、同一批次转账明细中,收款用户姓名字段需全部填写、或全部不填写;
225+
* 3、若传入收款用户姓名,微信支付会校验用户OpenID与姓名是否一致,并提供电子回单;
226+
* 4、收款方姓名。采用标准RSA算法,公钥由微信侧提供
227+
* 5、该字段需进行加密处理,加密方法详见敏感信息加密说明。(提醒:必须在HTTP头中上送Wechatpay-Serial)
228+
* 示例值:757b340b45ebef5467rter35gf464344v3542sdf4t6re4tb4f54ty45t4yyry45
229+
* </pre>
230+
*/
231+
@SpecEncrypt
232+
@SerializedName("user_name")
233+
private String userName;
234+
235+
/**
236+
* <pre>
237+
* 字段名:红包备注
238+
* 变量名:remark
239+
* 是否必填:是
240+
* 类型:string[1, 32]
241+
* 描述:
242+
* 单个红包备注,会展示在客户端收款凭证的“红包说明”字段,UTF8编码,最多允许32个字符
243+
* 示例值:来自XX的红包
244+
* </pre>
245+
*/
246+
@SerializedName("remark")
247+
private String remark;
248+
}
249+
}

0 commit comments

Comments
 (0)