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; } } }