Skip to content

Commit

Permalink
🆕 #2443【微信支付】增加服务商微工卡相关功能接口以及微信批量转账到零钱的服务商接口实现
Browse files Browse the repository at this point in the history
Co-authored-by: xiaoqiang <dengmingqiang@youmengbang.com>
  • Loading branch information
xiaoguaiYJ and xiaoqiang authored Dec 14, 2021
1 parent 6f35b98 commit c1d0b68
Show file tree
Hide file tree
Showing 36 changed files with 5,099 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
package com.github.binarywang.wxpay.bean.marketing.payroll;

import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
* <pre>
* 查询核身记录
* 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_1_5.shtml
*
* 适用对象:服务商
* 请求URL:https://api.mch.weixin.qq.com/v3/payroll-card/authentications
* 请求方式:GET
* </pre>
*
* @author xiaoqiang
* @date 2021/12/2
*/
@Data
@NoArgsConstructor
public class AuthRecordRequest implements Serializable {
private static final long serialVersionUID = 1L;

/**
* <pre>
* 字段名:用户标识
* 变量名:openid
* 是否必填:是
* 类型:string[1, 64]
* 描述:
* 用户在商户对应appid下的唯一标识
* 示例值:9x111111
* </pre>
*/
@SerializedName(value = "openid")
private String openid;

/**
* <pre>
* 字段名:应用ID
* 变量名:appid
* 是否必填:二选一
* 类型:string[1, 32]
* 描述:
* 是服务商在微信申请公众号/小程序或移动应用成功后分配的账号ID(与服务商主体一致),登录平台为mp.weixin.qq.com或open.weixin.qq.com。
* 当输入应用ID时,会校验其与服务商商户号的绑定关系。服务商应用ID和与子商户应用ID至少输入一个,且必须要有拉起微工卡时使用的APPID。
* 示例值:wxa1111111
* </pre>
*/
@SerializedName(value = "appid")
private String appid;

/**
* <pre>
* 字段名:子商户应用ID
* 变量名:sub_appid
* 是否必填:是
* 类型:string[1, 32]
* 描述:
* 是特约商户在微信申请公众号/小程序或移动应用成功后分配的账号ID(与特约商户主体一致),登录平台为mp.weixin.qq.com或open.weixin.qq.com。当输入子商户应用ID时,会校验其与特约商户号的绑定关系。 服务商应用ID和与子商户应用ID至少输入一个,且必须要有拉起微工卡时使用的APPID。
* 示例值:wxa1111111
* </pre>
*/
@SerializedName(value = "sub_appid")
private String subAppid;

/**
* <pre>
* 字段名:子商户号
* 变量名:sub_mchid
* 是否必填:是
* 类型:string[1, 32]
* 描述:
* 微信服务商下特约商户的商户号,由微信支付生成并下发
* 示例值:1111111
* </pre>
*/
@SerializedName(value = "sub_mchid")
private String subMchid;

/**
* <pre>
* 字段名:核身日期
* 变量名:authenticate_date
* 是否必填:是
* 类型:string[8, 8]
* 描述:
* query核身日期,一次只能查询一天,最久可查询90天内的记录,格式为“YYYY-MM-DD”
* 示例值:2020-12-25
* </pre>
*/
@SerializedName(value = "authenticate_date")
private String authenticateDate;
/**
* <pre>
* 字段名:核身状态
* 变量名:authenticate_state
* 是否必填:否
* 类型:string[1, 32]
* 描述:
* query核身状态,列表查询仅提供成功状态的核身记录查询,故此字段固定默认值即可
* 示例值:AUTHENTICATE_SUCCESS
* </pre>
*/
@SerializedName(value = "authenticate_state")
private String authenticateState;
/**
* <pre>
* 字段名:本次查询偏移量
* 变量名:offset
* 是否必填:否
* 类型:int
* 描述:
* query非负整数,表示该次请求资源的起始位置,从0开始计数。调用方选填,默认为0。offset为10,limit为10时,查询第10-19条数据
* </pre>
*/
@SerializedName(value = "offset")
private Integer offset;
/**
* <pre>
* 字段名:本次请求最大查询条数
* 变量名:limit
* 是否必填:否
* 类型:int
* 描述:
* query非0非负的整数,该次请求可返回的最大资源条数,默认值为10,最大支持10条。
* 示例值:10
* </pre>
*/
@SerializedName(value = "limit")
private Integer limit;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
package com.github.binarywang.wxpay.bean.marketing.payroll;

import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
* <pre>
* 查询核身记录
* 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_1_5.shtml
*
* 适用对象:服务商
* 请求URL:https://api.mch.weixin.qq.com/v3/payroll-card/authentications
* 请求方式:GET
* </pre>
*
* @author xiaoqiang
* @date 2021/12/2
*/
@Data
@NoArgsConstructor
public class AuthRecordResult implements Serializable {
private static final long serialVersionUID = 1L;

@SerializedName(value = "data")
private List<RecordData> dataList;

@Data
@NoArgsConstructor
public static class RecordData implements Serializable {
private static final long serialVersionUID = 1L;
/**
* <pre>
* 字段名:商户号
* 变量名:mchid
* 是否必填:是
* 类型:string[1, 32]
* 描述:
* 微信服务商商户的商户号,由微信支付生成并下发。
* 示例值:1111111
* </pre>
*/
@SerializedName(value = "mchid")
private Integer mchid;
/**
* <pre>
* 字段名:子商户号
* 变量名:sub_mchid
* 是否必填:是
* 类型:string[1, 32]
* 描述:
* 微信服务商下特约商户的商户号,由微信支付生成并下发
* 示例值:111111
* </pre>
*/
@SerializedName(value = "sub_mchid")
private Integer subMchid;
/**
* <pre>
* 字段名:用户标识
* 变量名:openid
* 是否必填:是
* 类型:string[1, 64]
* 描述:
* 用户在商户对应appid下的唯一标识
* 示例值:onqOjjmo8wmTOOtSKwXtGjg9Gb58
* </pre>
*/
@SerializedName(value = "openid")
private Integer openid;
/**
* <pre>
* 字段名:核身渠道
* 变量名:authenticate_scene
* 是否必填:是
* 类型:string[1, 16]
* 描述:
* 核身渠道,发起核身时的来源渠道,如通过小程序,硬件设备等
* FROM_MINI_APP:来自小程序方式核身
* FROM_HARDWARE:来自硬件设备方式核身
* 示例值:FROM_HARDWARE
* </pre>
*/
@SerializedName(value = "authenticate_scene")
private Integer authenticateScene;
/**
* <pre>
* 字段名:核身渠道标识
* 变量名:authenticate_source
* 是否必填:是
* 类型:string[1, 64]
* 描述:
* 核身渠道标识,用于定位渠道具体来源,如果是扫码打卡渠道标识就是具体的小程序appid,若是硬件设备,则是设备的序列号等
* 示例值:wdiooewl7587443649000
* </pre>
*/
@SerializedName(value = "authenticate_source")
private Integer authenticateSource;
/**
* <pre>
* 字段名:项目名称
* 变量名:project_name
* 是否必填:是
* 类型:string[1, 12]
* 描述:
* 该项目的名称
* 示例值:某项目
* </pre>
*/
@SerializedName(value = "project_name")
private Integer projectName;
/**
* <pre>
* 字段名:单位名称
* 变量名:employer_name
* 是否必填:是
* 类型:string[1, 12]
* 描述:
* 该用户所属的单位名称。
* 示例值:某单位名称
* </pre>
*/
@SerializedName(value = "employer_name")
private String employerName;
/**
* <pre>
* 字段名:核身状态
* 变量名:authenticate_state
* 是否必填:是
* 类型:string[1, 32]
* 描述:
* 核身状态
* AUTHENTICATE_PROCESSING:核身中
* AUTHENTICATE_SUCCESS:核身成功
* AUTHENTICATE_FAILED:核身失败
* 示例值:AUTHENTICATE_PROCESSING
* </pre>
*/
@SerializedName(value = "authenticate_state")
private String authenticateState;

/**
* <pre>
* 字段名:核身时间
* 变量名:authenticate_time
* 是否必填:是
* 类型:string[1, 32]
* 描述:
* 核身时间,遵循RFC3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。
* 示例值:2015-05-20T13:29:35+08:00
* </pre>
*/
@SerializedName(value = "authenticate_time")
private String authenticateTime;
/**
* <pre>
* 字段名:商家核身单号
* 变量名:authenticate_number
* 是否必填:是
* 类型:string[1, 64]
* 描述:
* 商户系统内部的商家核身单号,要求此参数只能由数字、大小写字母组成,在服务商内部唯一
* 示例值:mcdhehfgisdhfjghed39384564i83
* </pre>
*/
@SerializedName(value = "authenticate_number")
private String authenticateNumber;
}

/**
* <pre>
* 字段名:总记录条数
* 变量名:total_count
* 是否必填:是
* 类型:int
* 描述:
* 经过条件筛选,查询到的记录总数
* 示例值:9
* </pre>
*/
@SerializedName(value = "total_count")
private Integer totalCount;

/**
* <pre>
* 字段名:记录起始位置
* 变量名:offset
* 是否必填:是
* 类型:int
* 描述:
* 该次请求资源的起始位置,请求中包含偏移量时应答消息返回相同偏移量,否则返回默认值0
* </pre>
*/
@SerializedName(value = "offset")
private Integer offset;

/**
* <pre>
* 字段名:本次返回条数
* 变量名:limit
* 是否必填:是
* 类型:int
* 描述:
* 经过条件筛选,本次查询到的记录条数
* 示例值:10
* </pre>
*/
@SerializedName(value = "limit")
private Integer limit;
}
Loading

0 comments on commit c1d0b68

Please sign in to comment.