Skip to content

Commit c1d0b68

Browse files
xiaoguaiYJxiaoqiang
and
xiaoqiang
authored
🆕 #2443【微信支付】增加服务商微工卡相关功能接口以及微信批量转账到零钱的服务商接口实现
Co-authored-by: xiaoqiang <dengmingqiang@youmengbang.com>
1 parent 6f35b98 commit c1d0b68

36 files changed

+5099
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
package com.github.binarywang.wxpay.bean.marketing.payroll;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
import java.io.Serializable;
8+
9+
/**
10+
* <pre>
11+
* 查询核身记录
12+
* 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_1_5.shtml
13+
*
14+
* 适用对象:服务商
15+
* 请求URL:https://api.mch.weixin.qq.com/v3/payroll-card/authentications
16+
* 请求方式:GET
17+
* </pre>
18+
*
19+
* @author xiaoqiang
20+
* @date 2021/12/2
21+
*/
22+
@Data
23+
@NoArgsConstructor
24+
public class AuthRecordRequest implements Serializable {
25+
private static final long serialVersionUID = 1L;
26+
27+
/**
28+
* <pre>
29+
* 字段名:用户标识
30+
* 变量名:openid
31+
* 是否必填:是
32+
* 类型:string[1, 64]
33+
* 描述:
34+
* 用户在商户对应appid下的唯一标识
35+
* 示例值:9x111111
36+
* </pre>
37+
*/
38+
@SerializedName(value = "openid")
39+
private String openid;
40+
41+
/**
42+
* <pre>
43+
* 字段名:应用ID
44+
* 变量名:appid
45+
* 是否必填:二选一
46+
* 类型:string[1, 32]
47+
* 描述:
48+
* 是服务商在微信申请公众号/小程序或移动应用成功后分配的账号ID(与服务商主体一致),登录平台为mp.weixin.qq.com或open.weixin.qq.com。
49+
* 当输入应用ID时,会校验其与服务商商户号的绑定关系。服务商应用ID和与子商户应用ID至少输入一个,且必须要有拉起微工卡时使用的APPID。
50+
* 示例值:wxa1111111
51+
* </pre>
52+
*/
53+
@SerializedName(value = "appid")
54+
private String appid;
55+
56+
/**
57+
* <pre>
58+
* 字段名:子商户应用ID
59+
* 变量名:sub_appid
60+
* 是否必填:是
61+
* 类型:string[1, 32]
62+
* 描述:
63+
* 是特约商户在微信申请公众号/小程序或移动应用成功后分配的账号ID(与特约商户主体一致),登录平台为mp.weixin.qq.com或open.weixin.qq.com。当输入子商户应用ID时,会校验其与特约商户号的绑定关系。 服务商应用ID和与子商户应用ID至少输入一个,且必须要有拉起微工卡时使用的APPID。
64+
* 示例值:wxa1111111
65+
* </pre>
66+
*/
67+
@SerializedName(value = "sub_appid")
68+
private String subAppid;
69+
70+
/**
71+
* <pre>
72+
* 字段名:子商户号
73+
* 变量名:sub_mchid
74+
* 是否必填:是
75+
* 类型:string[1, 32]
76+
* 描述:
77+
* 微信服务商下特约商户的商户号,由微信支付生成并下发
78+
* 示例值:1111111
79+
* </pre>
80+
*/
81+
@SerializedName(value = "sub_mchid")
82+
private String subMchid;
83+
84+
/**
85+
* <pre>
86+
* 字段名:核身日期
87+
* 变量名:authenticate_date
88+
* 是否必填:是
89+
* 类型:string[8, 8]
90+
* 描述:
91+
* query核身日期,一次只能查询一天,最久可查询90天内的记录,格式为“YYYY-MM-DD”
92+
* 示例值:2020-12-25
93+
* </pre>
94+
*/
95+
@SerializedName(value = "authenticate_date")
96+
private String authenticateDate;
97+
/**
98+
* <pre>
99+
* 字段名:核身状态
100+
* 变量名:authenticate_state
101+
* 是否必填:否
102+
* 类型:string[1, 32]
103+
* 描述:
104+
* query核身状态,列表查询仅提供成功状态的核身记录查询,故此字段固定默认值即可
105+
* 示例值:AUTHENTICATE_SUCCESS
106+
* </pre>
107+
*/
108+
@SerializedName(value = "authenticate_state")
109+
private String authenticateState;
110+
/**
111+
* <pre>
112+
* 字段名:本次查询偏移量
113+
* 变量名:offset
114+
* 是否必填:否
115+
* 类型:int
116+
* 描述:
117+
* query非负整数,表示该次请求资源的起始位置,从0开始计数。调用方选填,默认为0。offset为10,limit为10时,查询第10-19条数据
118+
* </pre>
119+
*/
120+
@SerializedName(value = "offset")
121+
private Integer offset;
122+
/**
123+
* <pre>
124+
* 字段名:本次请求最大查询条数
125+
* 变量名:limit
126+
* 是否必填:否
127+
* 类型:int
128+
* 描述:
129+
* query非0非负的整数,该次请求可返回的最大资源条数,默认值为10,最大支持10条。
130+
* 示例值:10
131+
* </pre>
132+
*/
133+
@SerializedName(value = "limit")
134+
private Integer limit;
135+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
package com.github.binarywang.wxpay.bean.marketing.payroll;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
import java.io.Serializable;
8+
import java.util.List;
9+
10+
/**
11+
* <pre>
12+
* 查询核身记录
13+
* 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_1_5.shtml
14+
*
15+
* 适用对象:服务商
16+
* 请求URL:https://api.mch.weixin.qq.com/v3/payroll-card/authentications
17+
* 请求方式:GET
18+
* </pre>
19+
*
20+
* @author xiaoqiang
21+
* @date 2021/12/2
22+
*/
23+
@Data
24+
@NoArgsConstructor
25+
public class AuthRecordResult implements Serializable {
26+
private static final long serialVersionUID = 1L;
27+
28+
@SerializedName(value = "data")
29+
private List<RecordData> dataList;
30+
31+
@Data
32+
@NoArgsConstructor
33+
public static class RecordData implements Serializable {
34+
private static final long serialVersionUID = 1L;
35+
/**
36+
* <pre>
37+
* 字段名:商户号
38+
* 变量名:mchid
39+
* 是否必填:是
40+
* 类型:string[1, 32]
41+
* 描述:
42+
* 微信服务商商户的商户号,由微信支付生成并下发。
43+
* 示例值:1111111
44+
* </pre>
45+
*/
46+
@SerializedName(value = "mchid")
47+
private Integer mchid;
48+
/**
49+
* <pre>
50+
* 字段名:子商户号
51+
* 变量名:sub_mchid
52+
* 是否必填:是
53+
* 类型:string[1, 32]
54+
* 描述:
55+
* 微信服务商下特约商户的商户号,由微信支付生成并下发
56+
* 示例值:111111
57+
* </pre>
58+
*/
59+
@SerializedName(value = "sub_mchid")
60+
private Integer subMchid;
61+
/**
62+
* <pre>
63+
* 字段名:用户标识
64+
* 变量名:openid
65+
* 是否必填:是
66+
* 类型:string[1, 64]
67+
* 描述:
68+
* 用户在商户对应appid下的唯一标识
69+
* 示例值:onqOjjmo8wmTOOtSKwXtGjg9Gb58
70+
* </pre>
71+
*/
72+
@SerializedName(value = "openid")
73+
private Integer openid;
74+
/**
75+
* <pre>
76+
* 字段名:核身渠道
77+
* 变量名:authenticate_scene
78+
* 是否必填:是
79+
* 类型:string[1, 16]
80+
* 描述:
81+
* 核身渠道,发起核身时的来源渠道,如通过小程序,硬件设备等
82+
* FROM_MINI_APP:来自小程序方式核身
83+
* FROM_HARDWARE:来自硬件设备方式核身
84+
* 示例值:FROM_HARDWARE
85+
* </pre>
86+
*/
87+
@SerializedName(value = "authenticate_scene")
88+
private Integer authenticateScene;
89+
/**
90+
* <pre>
91+
* 字段名:核身渠道标识
92+
* 变量名:authenticate_source
93+
* 是否必填:是
94+
* 类型:string[1, 64]
95+
* 描述:
96+
* 核身渠道标识,用于定位渠道具体来源,如果是扫码打卡渠道标识就是具体的小程序appid,若是硬件设备,则是设备的序列号等
97+
* 示例值:wdiooewl7587443649000
98+
* </pre>
99+
*/
100+
@SerializedName(value = "authenticate_source")
101+
private Integer authenticateSource;
102+
/**
103+
* <pre>
104+
* 字段名:项目名称
105+
* 变量名:project_name
106+
* 是否必填:是
107+
* 类型:string[1, 12]
108+
* 描述:
109+
* 该项目的名称
110+
* 示例值:某项目
111+
* </pre>
112+
*/
113+
@SerializedName(value = "project_name")
114+
private Integer projectName;
115+
/**
116+
* <pre>
117+
* 字段名:单位名称
118+
* 变量名:employer_name
119+
* 是否必填:是
120+
* 类型:string[1, 12]
121+
* 描述:
122+
* 该用户所属的单位名称。
123+
* 示例值:某单位名称
124+
* </pre>
125+
*/
126+
@SerializedName(value = "employer_name")
127+
private String employerName;
128+
/**
129+
* <pre>
130+
* 字段名:核身状态
131+
* 变量名:authenticate_state
132+
* 是否必填:是
133+
* 类型:string[1, 32]
134+
* 描述:
135+
* 核身状态
136+
* AUTHENTICATE_PROCESSING:核身中
137+
* AUTHENTICATE_SUCCESS:核身成功
138+
* AUTHENTICATE_FAILED:核身失败
139+
* 示例值:AUTHENTICATE_PROCESSING
140+
* </pre>
141+
*/
142+
@SerializedName(value = "authenticate_state")
143+
private String authenticateState;
144+
145+
/**
146+
* <pre>
147+
* 字段名:核身时间
148+
* 变量名:authenticate_time
149+
* 是否必填:是
150+
* 类型:string[1, 32]
151+
* 描述:
152+
* 核身时间,遵循RFC3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。
153+
* 示例值:2015-05-20T13:29:35+08:00
154+
* </pre>
155+
*/
156+
@SerializedName(value = "authenticate_time")
157+
private String authenticateTime;
158+
/**
159+
* <pre>
160+
* 字段名:商家核身单号
161+
* 变量名:authenticate_number
162+
* 是否必填:是
163+
* 类型:string[1, 64]
164+
* 描述:
165+
* 商户系统内部的商家核身单号,要求此参数只能由数字、大小写字母组成,在服务商内部唯一
166+
* 示例值:mcdhehfgisdhfjghed39384564i83
167+
* </pre>
168+
*/
169+
@SerializedName(value = "authenticate_number")
170+
private String authenticateNumber;
171+
}
172+
173+
/**
174+
* <pre>
175+
* 字段名:总记录条数
176+
* 变量名:total_count
177+
* 是否必填:是
178+
* 类型:int
179+
* 描述:
180+
* 经过条件筛选,查询到的记录总数
181+
* 示例值:9
182+
* </pre>
183+
*/
184+
@SerializedName(value = "total_count")
185+
private Integer totalCount;
186+
187+
/**
188+
* <pre>
189+
* 字段名:记录起始位置
190+
* 变量名:offset
191+
* 是否必填:是
192+
* 类型:int
193+
* 描述:
194+
* 该次请求资源的起始位置,请求中包含偏移量时应答消息返回相同偏移量,否则返回默认值0
195+
* </pre>
196+
*/
197+
@SerializedName(value = "offset")
198+
private Integer offset;
199+
200+
/**
201+
* <pre>
202+
* 字段名:本次返回条数
203+
* 变量名:limit
204+
* 是否必填:是
205+
* 类型:int
206+
* 描述:
207+
* 经过条件筛选,本次查询到的记录条数
208+
* 示例值:10
209+
* </pre>
210+
*/
211+
@SerializedName(value = "limit")
212+
private Integer limit;
213+
}

0 commit comments

Comments
 (0)