using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ApiTools.Core
{
///
/// 发起批量转账-请求-请求体传参
///
public class WeChatPayPartnerTransferBatchesBodyParameters
{
public WeChatPayPartnerTransferBatchesBodyParameters()
{
TransferDetailList = [];
}
///
/// 特约商户号
///
[JsonProperty("sub_mchid")]
public string SubMchId { get; set; }
///
/// 特约商户appid
/// 微信分配的特约商户公众账号ID,特约商户授权类型为INFORMATION_AUTHORIZATION_TYPE和INFORMATION_AND_FUND_AUTHORIZATION_TYPE时 需要填写
///
[JsonProperty("sub_appid")]
public string SubAppId { get; set; }
///
/// 特约商户授权类型
/// INFORMATION_AUTHORIZATION_TYPE: 表示使用特约商户用户信息,出款方服务商
/// FUND_AUTHORIZATION_TYPE: 表示使用特约商户的资金,出款方为特约商户,用户信息为服务商appid对应的openid
/// INFORMATION_AND_FUND_AUTHORIZATION_TYPE: 表示使用特约商户的用户信息且出款方为特约商户
///
[JsonProperty("authorization_type")]
public string AuthorizationType { get; set; }
///
/// 商家批次单号
/// 商户系统内部的商家批次单号,在商户系统内部唯一
///
[JsonProperty("out_batch_no")]
public string OutBatchNo { get; set; }
///
/// 批次名称
/// 该笔批量转账的名称
///
[JsonProperty("batch_name")]
public string BatchName { get; set; }
///
/// 批次备注
/// 转账说明,UTF8编码,最多允许32个字符
///
[JsonProperty("batch_remark")]
public string BatchRemark { get; set; }
///
/// 转账总金额
/// 转账金额单位为“分”。转账总金额必须与批次内所有明细转账金额之和保持一致,否则无法发起转账操作
///
[JsonProperty("total_amount")]
public int TotalAmount { get; set; }
///
/// 转账总笔数
/// 一个转账批次单最多发起一千笔转账。转账总笔数必须与批次内所有明细之和保持一致,否则无法发起转账操作
///
[JsonProperty("total_num")]
public int TotalNum { get; set; }
///
/// 转账明细列表
///
[JsonProperty("transfer_detail_list")]
public List TransferDetailList { get; set; }
///
/// 服务商的appid
/// 微信分配的服务商商户公众账号ID,特约商户授权类型为FUND_AUTHORIZATION_TYPE时 需要填写
///
[JsonProperty("sp_appid")]
public string SpAppId { get; set; }
///
/// 批量转账用途
/// GOODSPAYMENT: 给用户支付货物采购资金
/// COMMISSION: 给用户支付业务推广佣金
/// REFUND: 给用户支付交易退款
/// REIMBURSEMENT: 企业给员工支付差旅等报销资金
/// FREIGHT: 给司机支付运输费用
/// OTHERS: 其他
///
[JsonProperty("transfer_purpose")]
public string TransferPurpose { get; set; }
///
/// 转账场景
/// ORDINARY_TRANSFER: 普通转账(默认)
/// PAYROLL_CARD_TRANSFER: 给使用微信务工卡的用户进行转账
///
[JsonProperty("transfer_scene")]
public string TransferScene { get; set; }
}
///
/// 发起批量转账-请求-请求体传参-转账明细
///
public class WeChatPayPartnerTransferBatchesBodyParametersDetail
{
///
/// 商家明细单号
/// 商户系统内部区分转账批次单下不同转账明细单的唯一标识
///
[JsonProperty("out_detail_no")]
public string OutDetailNo { get; set; }
///
/// 转账金额
/// 转账金额单位为“分”
///
[JsonProperty("transfer_amount")]
public int TransferAmount { get; set; }
///
/// 转账备注
/// 单条转账备注(微信用户会收到该备注),UTF8编码,最多允许32个字符
///
[JsonProperty("transfer_remark")]
public string TransferRemark { get; set; }
///
/// 收款用户openid
/// 收款用户openid。如果转账特约商户授权类型是INFORMATION_AUTHORIZATION_TYPE,对应的是特约商户公众号下的openid。
///
[JsonProperty("openid")]
public string OpenId { get; set; }
///
/// 收款用户姓名
/// 收款用户姓名。采用标准RSA算法,公钥由微信侧提供
/// 明细转账金额 >= 2,000时,该笔明细必须填写收款用户姓名
/// 同一批次转账明细中的姓名字段传入规则需保持一致,也即全部填写、或全部不填写
/// 若商户传入收款用户姓名,微信支付会校验用户openID与姓名是否一致,并提供电子回单
///
[JsonProperty("user_name")]
public string UserName { get; set; }
///
/// 收款用户身份证
/// 收款方身份证号,可不用填(采用标准RSA算法,公钥由微信侧提供)
/// 当填入收款方身份证号时,姓名字段必须填入
///
[JsonProperty("user_id_card")]
public string UserIdCard { get; set; }
}
///
/// 发起批量转账-响应
///
public class PartnerTransferBatchesResponse : WeChatPayResponse
{
///
/// 商家批次单号
/// 商户系统内部的商家批次单号,在商户系统内部唯一
///
[JsonProperty("out_batch_no")]
public string out_batch_no { get; set; }
///
/// 微信支付批次单号
/// 微信支付批次单号,微信商家转账系统返回的唯一标识
///
[JsonProperty("batch_id")]
public string batch_id { get; set; }
///
/// 批次创建时间
/// 批次受理成功时返回,按照使用rfc3339所定义的格式,格式为YYYY-MM-DDThh:mm:ss+TIMEZONE
///
[JsonProperty("create_time")]
public string create_time { get; set; }
}
}