using Senparc.Weixin.MP.AdvancedAPIs.Card;
using System;
using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace JiaZhiQuan.Common.JuheAPI.HuiFu {

    #region 公共参数
    /// <summary>
    /// 汇付支付发起信息-
    /// </summary>
    public class HuiFuJspayReq<T> {
        /// <summary>
        /// 系统号
        /// </summary>
        /// <remarks>
        /// 渠道商/商户的huifu_id。
        /// <list type="bullet">
        /// <item><description>当主体为渠道商时，此字段填写渠道商huifu_id；</description></item>
        /// <item><description>当主体为直连商户时，此字段填写商户huifu_id。</description></item>
        /// </list>
        /// 示例值：6666000123120000
        /// 非空
        /// </remarks>
        public string sys_id { get; set; }

        /// <summary>
        /// 产品号
        /// </summary>
        /// <remarks>
        /// 汇付分配的产品号，示例值：MCS
        /// 非空
        /// </remarks>
        public string product_id { get; set; }

        /// <summary>
        /// 加签结果
        /// </summary>
        /// <remarks>
        /// 接口加签验签说明
        /// 非空
        /// </remarks>
        public string sign { get; set; }

        /// <summary>
        /// 数据
        /// </summary>
        /// <remarks>
        /// 业务请求参数，具体值参考API文档
        /// 非空
        /// </remarks>
        public T data { get; set; }
    }

    public class HuiFuResp<T> {
        /// <summary>
        /// 签名
        /// </summary>
        /// <remarks>
        /// 接口加签验签说明
        /// 非空
        /// </remarks>
        public string sign { get; set; }

        /// <summary>
        /// 响应内容体
        /// </summary>
        /// <remarks>
        /// 业务返回参数
        /// </remarks>
        public T data { get; set; }
    }
    /// <summary>
    /// 异步返回参数
    /// </summary>
    public class HuiFuAsyncResp<T> {
        /// <summary>
        /// 网关返回码
        /// </summary>
        /// <remarks>
        /// 示例值：00000000
        /// 非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 网关返回信息
        /// </summary>
        /// <remarks>
        /// 示例值：交易成功[000]
        /// 非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 签名
        /// </summary>
        /// <remarks>
        /// 接口加签验签说明
        /// 非空
        /// </remarks>
        public string sign { get; set; }

        /// <summary>
        /// 返回业务数据
        /// </summary>
        /// <remarks>
        /// jsonObject
        /// 非空
        /// </remarks>
        public T resp_data { get; set; }
    }

    public class HuiFuReqBase {
        public string reqId { get; set; }
        //原始id
        public string orgId { get; set; }
        public string orderId { get; set; }
        public string userId { get; set; }
        /// <summary>
        /// 事件类型-UEBillEventType.
        /// </summary>
        public int eventType { get; set; }
        public string notifyUrl { get; set; }
        public virtual HuiFuReqTypeEnums ReqType() { return HuiFuReqTypeEnums.None; }

        private object _remark;
        //额外信息-对方会返回-不超过128字符
        public object Remark {
            get {
                return _remark ?? new {
                    orderId,
                    orgId,
                    eventType,
                };
            }
            set { _remark = value; }
        }
             
        public void CopyBaseInfo(HuiFuReqBase baseInfo) {
            orgId=baseInfo.orgId;
            eventType=baseInfo.eventType;
            orderId = baseInfo.orderId;
            userId = baseInfo.userId;
        }
    }

    public class HuiFuRespBase :HuiFuReqBase {
        /// <summary>
        /// 请求处理结果：1成功，2失败，3处理中
        /// </summary>
        public int dealResult { get; set; }
        /// <summary>
        /// 全局流水号
        /// </summary>
        public string hfSeqId { get; set; }
        /// <summary>
        /// 额外信息
        /// </summary>
        public object extra { get; set; }
    }

    public class HuiFuPayInfo : HuiFuReqBase {
        //支付金额-单位分
        public int payAmount { get; set; }
        //支付标题
        public string title { get; set; }
        //付款方支付宝唯一用户号
        public string buyerAliId { get; set; }
        //支付超时时间
        public DateTime payExpireAt { get; set; }
        public override HuiFuReqTypeEnums ReqType() { return HuiFuReqTypeEnums.Jspay; }
    }

    public class HuiFuIndvInfo: HuiFuReqBase {
        /// <summary>
        /// 个人姓名
        /// </summary>
        /// <remarks>
        /// 示例值：张三
        /// 非空
        /// </remarks>
        public string name { get; set; }         

        /// <summary>
        /// 个人证件号码
        /// </summary>
        /// <remarks>
        /// 示例值：320926198312024023
        /// 非空
        /// </remarks>
        public string cert_no { get; set; }

        /// <summary>
        /// 个人证件有效期类型
        /// </summary>
        /// <remarks>
        /// 1:长期有效 0:非长期有效；示例值：0
        /// 非空
        /// </remarks>
        public string cert_validity_type { get; set; }

        /// <summary>
        /// 个人证件有效期开始日期
        /// </summary>
        /// <remarks>
        /// 日期格式：yyyyMMdd；示例值：20220909
        /// 非空
        /// </remarks>
        public string cert_begin_date { get; set; }

        /// <summary>
        /// 个人证件有效期截止日期
        /// </summary>
        /// <remarks>
        /// 日期格式：yyyyMMdd; 示例值：20330909 ；长期有效时可不填，非长期有效必填
        /// </remarks>
        public string cert_end_date { get; set; }

        /// <summary>
        /// 手机号
        /// </summary>
        /// <remarks>
        /// 示例值：13917354627
        /// 非空
        /// </remarks>
        public string mobile_no { get; set; }
        public override HuiFuReqTypeEnums ReqType() { return HuiFuReqTypeEnums.Indv; }
    }
    
    public class HuiFuChashInfo : HuiFuReqBase {
        /// <summary>
        /// 取现金额
        /// </summary>
        /// <remarks>
        /// 单位分
        /// </remarks>
        public int cash_amt { get; set; }

        /// <summary>
        /// 取现方ID号
        /// </summary>
        /// <remarks>
        /// 提取发起方的汇付ID。支持已配置取现规则的商户、用户。
        /// 示例值：6666000109812123
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 账户号
        /// </summary>
        /// <remarks>
        /// 可指定账户号，仅支持基本户、现金户，不填默认为基本户；
        /// 示例值：F00598600
        /// </remarks>
        public string acct_id { get; set; }

        /// <summary>
        /// 到账日期类型
        /// </summary>
        /// <remarks>
        /// D0：当日到账；当日交易资金当天可取现到账；
        /// T1：次工作日到账；
        /// D1：次自然日到账；
        /// DM：当日到账；到账资金不包括当天的交易资金；
        /// 示例值：D0
        /// 非空
        /// </remarks>
        public string into_acct_date_type { get; set; }

        /// <summary>
        /// 取现卡序列号
        /// </summary>
        /// <remarks>
        /// 绑定取现卡后可获取取现卡序列号；
        /// 示例值：10004053462
        /// 非空
        /// </remarks>
        public string token_no { get; set; }
        public override HuiFuReqTypeEnums ReqType() { return HuiFuReqTypeEnums.Chash; }
    }

    public class HuiFuYuEPayInfo : HuiFuReqBase {
        //为提现保存。
        public string token_no { get; set; }
        //支付金额-单位分
        public int ord_amt { get; set; }
        //出款方商户号
        public string out_huifu_id { get; set; }
        //收款方商户号
        public string huifu_id { get; set; }
        //01：卡券推广类；02：卡券核销类；03：消费；04：工资代发；05：分润；06：灵活用工；示例值：01        
        public string transfer_type { get; set; } = "03";//默认03
        //余额支付手续费承担方标识；商户余额支付扣收规则为接口指定承担方时必填！枚举值：
        // OUT：出款方；
        //IN：分账接受方。
        public string trans_fee_take_flag { get; set; } = "OUT";//默认03        
        public override HuiFuReqTypeEnums ReqType() { return HuiFuReqTypeEnums.YuEPay; }
    }

    public class HuiFuOpenInfo : HuiFuReqBase {
        /// <summary>
        /// 用户汇付ID
        /// </summary>
        /// <remarks>
        /// 入驻时返回的huifu_id；示例值：6666000123123123
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 平台汇付Id
        /// </summary>
        /// <remarks>
        /// 汇付分配的渠道商或商户编号；示例值：6666000123123123
        /// 非空
        /// </remarks>
        public string upper_huifu_id { get; set; }

        public CardInfo card_info { get; set; }

        public override HuiFuReqTypeEnums ReqType() { return HuiFuReqTypeEnums.Open; }
    }

    public class HuiFuOpenModifyInfo : HuiFuOpenInfo {
        public override HuiFuReqTypeEnums ReqType() { return HuiFuReqTypeEnums.OpenModify; }
    }

    public class CardInfo {
        /// <summary>
        /// 卡类型
        /// </summary>
        /// <remarks>
        /// 0：对公，1：对私，2：对私非法人；个人商户/用户不支持对公类型，对私非法人类型
        /// 示例值：0
        /// 非空
        /// </remarks>
        public string card_type { get; set; }

        /// <summary>
        /// 卡户名
        /// </summary>
        /// <remarks>
        /// 持卡人姓名；
        /// 示例值：上海汇付支付服务公司
        /// 非空
        /// </remarks>
        public string card_name { get; set; }

        /// <summary>
        /// 卡号
        /// </summary>
        /// <remarks>
        /// 银行卡号；
        /// 示例值：0206014170008888
        /// 非空
        /// </remarks>
        public string card_no { get; set; }

        /// <summary>
        /// 银行所在省
        /// </summary>
        /// <remarks>
        /// 地区编码内容较多，请下载查询下载；
        /// 示例值：100000
        /// 非空
        /// </remarks>
        public string prov_id { get; set; }

        /// <summary>
        /// 银行所在市
        /// </summary>
        /// <remarks>
        /// 地区编码内容较多，请下载查询下载；
        /// 示例值：110000
        /// 非空
        /// </remarks>
        public string area_id { get; set; }

        /// <summary>
        /// 持卡人证件类型
        /// </summary>
        /// <remarks>
        /// 对私必填；参见《自然人证件类型》说明；
        /// 示例值：00 ，表示身份证
        /// </remarks>
        public string cert_type { get; set; } = "00";

        /// <summary>
        /// 持卡人证件号码
        /// </summary>
        /// <remarks>
        /// 对私必填；如:证件类型为身份证, 则填写身份证号码；
        /// 示例值：320926198412032059
        /// </remarks>
        public string cert_no { get; set; }

        /// <summary>
        /// 持卡人证件有效期类型
        /// </summary>
        /// <remarks>
        /// 对私必填；1：长期有效；0：非长期有效；
        /// 示例值：0
        /// </remarks>
        public string cert_validity_type { get; set; }

        /// <summary>
        /// 持卡人证件有效期（起始）
        /// </summary>
        /// <remarks>
        /// 对私必填；日期格式：yyyyMMdd；
        /// 示例值：20110112
        /// </remarks>
        public string cert_begin_date { get; set; }

        /// <summary>
        /// 持卡人证件有效期（截止）
        /// </summary>
        /// <remarks>
        /// 当cert_validity_type=0时必须填写；日期格式yyyyMMdd；
        /// 示例值：20110112
        /// 当cert_validity_type=1可不填
        /// </remarks>
        public string cert_end_date { get; set; }

        /// <summary>
        /// 默认结算卡标志
        /// </summary>
        /// <remarks>
        /// 是否为默认结算卡标志；Y:是 N:否(为空默认)；
        /// 示例值：Y
        /// </remarks>
        public string is_settle_default { get; set; } = "Y";
    }

    public class HuiFuRefundInfo : HuiFuReqBase {

        /// <summary>
        /// 申请退款金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位；示例值：1.00，最低传入0.01
        /// 注意：如果是原交易是延时交易，退款金额必须小于等于待确认金额
        /// 非空
        /// </remarks>
        public int ord_amt { get; set; }

        /// <summary>
        /// 原交易请求日期
        /// </summary>
        /// <remarks>
        /// 格式：yyyyMMdd；示例值：20220925
        /// 非空
        /// </remarks>
        public string org_req_date { get; set; }

        /// <summary>
        /// 原交易请求流水号
        /// </summary>
        /// <remarks>
        /// org_hf_seq_id，org_party_order_id，org_req_seq_id三选一；
        /// 示例值：202110210012100005
        /// </remarks>
        public string org_req_seq_id { get; set; }
        public override HuiFuReqTypeEnums ReqType() { return HuiFuReqTypeEnums.Refund; }
    }

    public class HuiFuRefundQueryInfo: HuiFuReqBase {

        /// <summary>
        /// 退款请求日期
        /// </summary>
        /// <remarks>
        /// 退款发生的日期，格式为yyyyMMdd，示例值：20220925
        /// 非空
        /// </remarks>
        public string org_req_date { get; set; }

        /// <summary>
        /// 退款请求流水号
        /// </summary>
        /// <remarks>
        /// 退款请求流水号,退款全局流水号,终端订单号三选一不能都为空；
        /// 示例值：202110210012100005
        /// </remarks>
        public string org_req_seq_id { get; set; }
        public override HuiFuReqTypeEnums ReqType() { return HuiFuReqTypeEnums.RefundQuery; }
    }
    #endregion

    #region 聚合支付参数
    /// <summary>
    /// 目前只接入alipay.部分字段非必填，已删。
    /// </summary>
    public class HuiFuJspayReq {
        /// <summary>
        /// 请求日期
        /// </summary>
        /// <remarks>
        /// 格式yyyyMMdd；示例值：20220905
        /// 非空
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 请求流水号
        /// </summary>
        /// <remarks>
        /// 示例值：rQ2021121311173944134649875651
        /// 非空
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        /// <remarks>
        /// 渠道与一级代理商的直属商户ID；示例值：6666000123123123
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 账户号
        /// </summary>
        /// <remarks>
        /// 可指定收款账户号，仅支持基本户、现金户，不填默认为基本户；
        /// 示例值：F00598600
        /// </remarks>
        public string acct_id { get; set; }

        /// <summary>
        /// 商品描述
        /// </summary>
        /// <remarks>
        /// 示例值：XX商品
        /// 非空
        /// </remarks>
        public string goods_desc { get; set; }

        /// <summary>
        /// 交易类型
        /// </summary>
        /// <remarks>
        /// T_JSAPI: 微信公众号
        /// T_MINIAPP: 微信小程序
        /// A_JSAPI: 支付宝JS
        /// A_NATIVE: 支付宝正扫
        /// U_NATIVE: 银联正扫
        /// U_JSAPI: 银联JS
        /// D_NATIVE: 数字人民币正扫
        /// T_H5：微信直连H5支付
        /// T_APP：微信APP支付
        /// T_NATIVE：微信正扫
        /// 示例值：A_NATIVE
        /// 非空
        /// </remarks>
        public string trade_type { get; set; }

        /// <summary>
        /// 交易金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1000.00，最低传入0.01；
        /// 非空
        /// </remarks>
        public string trans_amt { get; set; }

        /// <summary>
        /// 交易有效期
        /// </summary>
        /// <remarks>
        /// 该笔订单允许付款最晚时间，建议大于1分钟；
        /// 注意：微信、支付宝交易有订单超时时间，默认两小时关单；
        /// 请求格式：yyyyMMddHHmmss；示例值：20220912111230
        /// </remarks>
        public string time_expire { get; set; }

        /// <summary>
        /// 支付宝参数集合
        /// </summary>
        /// <remarks>
        /// HuiFuAlipayReqData 生成的jsonObject字符串
        /// </remarks>
        public string alipay_data { get; set; }

        /// <summary>
        /// 是否延迟交易
        /// </summary>
        /// <remarks>
        /// Y 为延迟 N为不延迟，不传默认N；
        /// 示例值：Y
        /// </remarks>
        public string delay_acct_flag { get; set; }

        /// <summary>
        /// 手续费扣款标志
        /// </summary>
        /// <remarks>
        /// 1: 外扣 2: 内扣 (默认取控台配置值)；
        /// 示例值：1
        /// </remarks>
        public int? fee_flag { get; set; }
        /// <summary>
        /// 传入分账遇到优惠的处理规则
        /// </summary>
        /// <remarks>
        /// 1: 按比例分，2: 按顺序保障，3: 只给交易商户（默认)；示例值：1
        /// </remarks>
        public int? term_div_coupon_type { get; set; }
        
        /// <summary>
        /// 补贴支付信息
        /// </summary>
        /// <remarks>
        /// jsonArray字符串；参见《补贴支付信息》
        /// </remarks>
        public object? combinedpay_data { get; set; }

        /// <summary>
        /// 禁用信用卡标记
        /// </summary>
        /// <remarks>
        /// 本次交易禁止使用的支付方式，默认不禁用；取值参见说明；
        /// 示例值：NO_CREDIT
        /// </remarks>
        public string limit_pay_type { get; set; }

        /// <summary>
        /// 商户贴息标记
        /// </summary>
        /// <remarks>
        /// 商户补贴活动，Y: 商户全额贴息，P：商户部分贴息，不传为非商户贴息（默认）；
        /// 示例值：Y
        /// </remarks>
        public string fq_mer_discount_flag { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        /// <remarks>
        /// 交易后原样返回；
        /// 示例值：备注
        /// </remarks>
        public string remark { get; set; }

        /// <summary>
        /// 异步通知地址
        /// </summary>
        /// <remarks>
        /// 交易异步通知地址，http或https开头。
        /// 示例值：https://callback.service.com/xx
        /// </remarks>
        public string notify_url { get; set; }
    }
    public class HuiFuAlipayReq {
        /// <summary>
        /// 支付宝的店铺编号
        /// </summary>
        /// <remarks>
        /// 示例值：2016041400077000000003314986
        /// </remarks>
        public string alipay_store_id { get; set; }

        /// <summary>
        /// 买家的支付宝唯一用户号
        /// </summary>
        /// <remarks>
        /// 示例值：2088202954065786；
        /// 非空
        /// </remarks>
        public string buyer_id { get; set; }

        /// <summary>
        /// 买家支付宝账号
        /// </summary>
        /// <remarks>
        /// 示例值：carl.chen@huifu.com；
        /// </remarks>
        public string buyer_logon_id { get; set; }

        /// <summary>
        /// 商户原始订单号
        /// </summary>
        /// <remarks>
        /// 示例值：39045032345
        /// </remarks>
        public string merchant_order_no { get; set; }

        /// <summary>
        /// 商户操作员编号
        /// </summary>
        /// <remarks>
        /// 示例值：carl.li@huifu.com
        /// </remarks>
        public string operator_id { get; set; }

        /// <summary>
        /// 销售产品码
        /// </summary>
        /// <remarks>
        /// 示例值：YYZY
        /// </remarks>
        public string product_code { get; set; }

        /// <summary>
        /// 卖家支付宝用户号
        /// </summary>
        /// <remarks>
        /// 示例值：20880414938706770000
        /// </remarks>
        public string seller_id { get; set; }

        /// <summary>
        /// 商户门店编号
        /// </summary>
        /// <remarks>
        /// 示例值：sh1001
        /// </remarks>
        public string store_id { get; set; }

        /// <summary>
        /// 订单标题
        /// </summary>
        /// <remarks>
        /// 直连模式必填；商品的标题/交易标题/订单标题/订单关键字等，是请求时对应的参数，原样通知回来；
        /// 示例值：红果奶茶
        /// </remarks>
        public string subject { get; set; }

    }

    public class HuiFuJspayResp {
        /// <summary>
        /// 业务响应码
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务响应信息
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 请求时间
        /// </summary>
        /// <remarks>
        /// 交易时传入，原样返回；示例值：20220905
        /// 非空
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 请求流水号
        /// </summary>
        /// <remarks>
        /// 交易时传入，原样返回；示例值：rQ2021121311173944134649875651
        /// 非空
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 全局流水号
        /// </summary>
        /// <remarks>
        /// 示例值：00470topo1A221019132207P068ac1362af00000
        /// </remarks>
        public string hf_seq_id { get; set; }

        /// <summary>
        /// 交易类型
        /// </summary>
        /// <remarks>
        /// T_JSAPI: 微信公众号支付
        /// T_MINIAPP: 微信小程序支付
        /// A_JSAPI: 支付宝JS
        /// A_NATIVE: 支付宝正扫
        /// U_NATIVE: 银联正扫
        /// U_JSAPI: 银联 JS
        /// D_NATIVE: 数字人民币正扫
        /// T_H5：微信直连H5支付
        /// T_APP：微信APP支付
        /// T_NATIVE：微信正扫
        /// 示例值：T_JSAPI
        /// </remarks>
        public string trade_type { get; set; }

        /// <summary>
        /// 交易金额
        /// </summary>
        /// <remarks>
        /// 单位元，示例值：1.00
        /// </remarks>
        public string trans_amt { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>
        /// P:处理中、S:成功、F:失败；交易状态以此字段为准。
        /// 示例值：S
        /// </remarks>
        public string trans_stat { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        /// <remarks>
        /// 示例值：6666000123123123
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 通道返回码
        /// </summary>
        /// <remarks>
        /// 请勿根据此字段判断交易状态，此字段建议在交易失败时配合bank_message使用。
        /// 示例值：00
        /// </remarks>
        public string bank_code { get; set; }

        /// <summary>
        /// 通道返回描述
        /// </summary>
        /// <remarks>
        /// 示例值：成功[0000000]
        /// </remarks>
        public string bank_message { get; set; }

        /// <summary>
        /// 延时标记
        /// </summary>
        /// <remarks>
        /// Y: 延迟 N: 实时（默认）
        /// 注意：延时交易要调交易确认接口资金才能进入收款方账户，否则会停留在延时账户中。
        /// 示例值：Y
        /// </remarks>
        public string delay_acct_flag { get; set; }

        /// <summary>
        /// JS支付信息
        /// </summary>
        /// <remarks>
        /// JSAPI支付返回信息；
        /// </remarks>
        public string pay_info { get; set; }

        /// <summary>
        /// 二维码链接
        /// </summary>
        /// <remarks>
        /// NATIVE支付返回二维码链接；
        /// 示例值：https://qr.alipay.com/bax03232ftw69valbwmg000d
        /// </remarks>
        public string qr_code { get; set; }

        /// <summary>
        /// 支付宝返回的响应报文
        /// </summary>
        /// <remarks>
        /// Json格式
        /// </remarks>
        public object? alipay_response { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        /// <remarks>
        /// 原样返回；
        /// 示例值：备注
        /// </remarks>
        public string remark { get; set; }

        /// <summary>
        /// 账户号
        /// </summary>
        /// <remarks>
        /// 商户账户号；
        /// 示例值：F00598600
        /// </remarks>
        public string acct_id { get; set; }

        /// <summary>
        /// 终端类型
        /// </summary>
        /// <remarks>
        /// 01-智能POS
        /// 02-扫码POS
        /// 03-云音箱
        /// 04-台牌
        /// 05-云打印
        /// 06-扫脸设备
        /// 07-收银机
        /// 08-收银助手
        /// 09-传统POS
        /// 10-一体音箱
        /// 11-虚拟终端
        /// 示例值：01
        /// </remarks>
        public string device_type { get; set; }

        /// <summary>
        /// 用户账单上的商户订单号
        /// </summary>
        /// <remarks>
        /// 参见用户账单说明；
        /// 示例值：03232109190255105603561
        /// </remarks>
        public string party_order_id { get; set; }

        /// <summary>
        /// ATU真实商户号
        /// </summary>
        /// <remarks>
        /// 微信、支付宝、银联真实商户号；
        /// 示例值：411111141
        /// </remarks>
        public string aTu_sub_mer_id { get; set; }

        /// <summary>
        /// 待确认金额
        /// </summary>
        /// <remarks>
        /// 待确认金额；单位元。
        /// 示例值：1.00
        /// </remarks>
        public string unconfirm_amt { get; set; }
    }
    
    public class HuiFuJspayAsyncResp {
        /// <summary>
        /// 业务返回码
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务返回描述
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        /// <remarks>
        /// 示例值：6666000123123123
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 请求流水号
        /// </summary>
        /// <remarks>
        /// 交易时传入，原样返回；示例值：rQ2021121311173944134649875651
        /// 非空
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 请求时间
        /// </summary>
        /// <remarks>
        /// 交易时传入，原样返回，格式为yyyyMMdd，示例值：20091225
        /// 非空
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 交易类型
        /// </summary>
        /// <remarks>
        /// T_JSAPI: 微信公众号支付
        /// T_MINIAPP: 微信小程序支付
        /// A_JSAPI: 支付宝JS
        /// A_NATIVE: 支付宝正扫
        /// U_NATIVE: 银联正扫
        /// U_JSAPI: 银联 JS
        /// T_MICROPAY: 微信反扫
        /// A_MICROPAY: 支付宝反扫
        /// U_MICROPAY: 银联反扫
        /// D_NATIVE: 数字人民币正扫
        /// D_MICROPAY: 数字人民币反扫
        /// 示例值：T_JSAPI
        /// </remarks>
        public string trans_type { get; set; }

        /// <summary>
        /// 全局流水号
        /// </summary>
        /// <remarks>
        /// 示例值：00470topo1A221019132207P068ac1362af00000
        /// </remarks>
        public string hf_seq_id { get; set; }

        /// <summary>
        /// 用户账单上的交易订单号
        /// </summary>
        /// <remarks>
        /// 示例值：092021091922001451301445517582；参见用户账单说明
        /// </remarks>
        public string out_trans_id { get; set; }

        /// <summary>
        /// 用户账单上的商户订单号
        /// </summary>
        /// <remarks>
        /// 示例值：03232109190255105603561；参见用户账单说明
        /// </remarks>
        public string party_order_id { get; set; }

        /// <summary>
        /// 交易金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01
        /// </remarks>
        public string trans_amt { get; set; }

        /// <summary>
        /// 消费者实付金额
        /// </summary>
        /// <remarks>
        /// 单位元，示例值：1.00
        /// </remarks>
        public string pay_amt { get; set; }

        /// <summary>
        /// 结算金额(元)
        /// </summary>
        /// <remarks>
        /// 实际应结金额(订单金额扣除优惠金额后的值)，需保留小数点后两位，示例值：1000.00，最低传入0.01
        /// </remarks>
        public string settlement_amt { get; set; }

        /// <summary>
        /// 支付完成时间
        /// </summary>
        /// <remarks>
        /// 格式yyyyMMddHHmmss，示例值：20091225091010
        /// </remarks>
        public string end_time { get; set; }

        /// <summary>
        /// 入账时间
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMdd，示例值：20091225
        /// </remarks>
        public string acct_date { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>
        /// S：成功、F：失败，交易状态以此字段为准。
        /// </remarks>
        public string trans_stat { get; set; }

        /// <summary>
        /// 手续费扣款标志
        /// </summary>
        /// <remarks>
        /// 1: 外扣，2: 内扣。
        /// </remarks>
        public int? fee_flag { get; set; }

        /// <summary>
        /// 手续费费率信息
        /// </summary>
        /// <remarks>
        /// 交易成功时返回手续费费率信息。
        /// </remarks>
        public object? fee_formula_infos { get; set; }

        /// <summary>
        /// 手续费金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01。
        /// </remarks>
        public string fee_amount { get; set; }

        /// <summary>
        /// 补贴支付的手续费
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00。
        /// </remarks>
        public string combinedpay_fee_amt { get; set; }

        /// <summary>
        /// 手续费补贴信息
        /// </summary>
        /// <remarks>
        /// Json格式；参加银行补贴手续费。
        /// </remarks>
        public object? trans_fee_allowance_info { get; set; }

        /// <summary>
        /// 补贴支付信息
        /// </summary>
        /// <remarks>
        /// jsonArray字符串；参见《补贴支付信息》。
        /// </remarks>
        public object combinedpay_data { get; set; }

        /// <summary>
        /// 借贷记标识
        /// </summary>
        /// <remarks>
        /// D-借记卡，C-贷记卡，0-其他。
        /// </remarks>
        public string debit_type { get; set; }

        /// <summary>
        /// 是否分账交易
        /// </summary>
        /// <remarks>
        /// 1:分账交易， 0:非分账交易。
        /// 非空
        /// </remarks>
        public string is_div { get; set; }

        /// <summary>
        /// 是否延时交易
        /// </summary>
        /// <remarks>
        /// 1:延迟， 0:非延迟。
        /// 非空
        /// </remarks>
        public string is_delay_acct { get; set; }

        /// <summary>
        /// 支付宝返回的响应报文
        /// </summary>
        /// <remarks>
        /// Json格式。
        /// </remarks>
        public object? alipay_response { get; set; }

        /// <summary>
        /// 终端类型
        /// </summary>
        /// <remarks>
        /// 01-智能POS
        /// 02-扫码POS
        /// 03-云音箱
        /// 04-台牌
        /// 05-云打印
        /// 06-扫脸设备
        /// 07-收银机
        /// 08-收银助手
        /// 09-传统POS
        /// 10-一体音箱
        /// 11-虚拟终端
        /// 示例值：01
        /// </remarks>
        public string device_type { get; set; }

        /// <summary>
        /// 商户终端定位
        /// </summary>
        /// <remarks>
        /// 商户终端定位信息，jsonObject字符串。
        /// </remarks>
        public string mer_dev_location { get; set; }

        /// <summary>
        /// 通道返回码
        /// </summary>
        /// <remarks>
        /// 请勿根据此字段判断交易状态，此字段建议在交易失败时配合bank_message使用。
        /// 示例值：00
        /// </remarks>
        public string bank_code { get; set; }

        /// <summary>
        /// 通道返回描述
        /// </summary>
        /// <remarks>
        /// 示例值：成功[0000000]
        /// </remarks>
        public string bank_message { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        /// <remarks>
        /// 示例值：备注
        /// </remarks>
        public string remark { get; set; }

        /// <summary>
        /// 分期资产方式
        /// </summary>
        /// <remarks>
        /// 花呗分期功能，代表优先使用的资产类型；alipayfq_cc：表示信用卡分期。
        /// 示例值：alipayfq_cc
        /// </remarks>
        public string fq_channels { get; set; }

        /// <summary>
        /// 通知类型
        /// </summary>
        /// <remarks>
        /// 1：通道通知，2：账务通知。
        /// 示例值：1
        /// </remarks>
        public string notify_type { get; set; }

        /// <summary>
        /// 分账手续费信息
        /// </summary>
        /// <remarks>
        /// 分账手续费信息。
        /// </remarks>
        public string split_fee_info { get; set; }

        /// <summary>
        /// ATU真实商户号
        /// </summary>
        /// <remarks>
        /// 示例值：411111141
        /// </remarks>
        public string aTu_sub_mer_id { get; set; }

        /// <summary>
        /// 汇付终端号
        /// </summary>
        /// <remarks>
        /// 使用汇付机具交易时返回。
        /// 示例值：660035730311200000
        /// </remarks>
        public string devs_id { get; set; }

        /// <summary>
        /// 资金冻结状态
        /// </summary>
        /// <remarks>
        /// FREEZE：冻结；UNFREEZE：解冻。
        /// 示例值：UNFREEZE
        /// </remarks>
        public string fund_freeze_stat { get; set; }
    }

    /// <summary>
    /// 解冻异步返回参数
    /// </summary>
    public class HuiFuJspayAsyncUnfreezeResp {
        /// <summary>
        /// 业务返回码
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务返回描述
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 交易的汇付全局流水号
        /// </summary>
        /// <remarks>
        /// 示例值：00470topo1A221019132207P068ac1362af00000
        /// 非空
        /// </remarks>
        public string hf_seq_id { get; set; }

        /// <summary>
        /// 交易请求流水号
        /// </summary>
        /// <remarks>
        /// 交易时传入，原样返回；示例值：rQ2021121311173944134649875651
        /// 非空
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 交易请求日期
        /// </summary>
        /// <remarks>
        /// 交易时传入，原样返回,格式为yyyyMMdd，示例值：20091225
        /// 非空
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        /// <remarks>
        /// 示例值：6666000123120000
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 通知类型
        /// </summary>
        /// <remarks>
        /// 3：资金解冻通知；示例值：3
        /// 非空
        /// </remarks>
        public string notify_type { get; set; }

        /// <summary>
        /// 资金冻结状态
        /// </summary>
        /// <remarks>
        /// UNFREEZE：解冻；示例值：UNFREEZE
        /// 非空
        /// </remarks>
        public string fund_freeze_stat { get; set; }

        /// <summary>
        /// 解冻金额
        /// </summary>
        /// <remarks>
        /// 单元：元。示例值：1.23
        /// 非空
        /// </remarks>
        public string unfreeze_amt { get; set; }

        /// <summary>
        /// 冻结时间
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMddHHMMSS，示例值：20091225091010
        /// 非空
        /// </remarks>
        public string freeze_time { get; set; }

        /// <summary>
        /// 解冻时间
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMddHHMMSS，示例值：20091225091010
        /// 非空
        /// </remarks>
        public string unfreeze_time { get; set; }
    }
    #endregion

    #region 取现参数
    public class HuiFuChashReq {

        /// <summary>
        /// 请求日期
        /// </summary>
        /// <remarks>
        /// 格式yyyyMMdd；示例值：20210917
        /// 非空
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 请求流水号
        /// </summary>
        /// <remarks>
        /// 示例值：2021091708126665001
        /// 非空
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 取现金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00
        /// 非空
        /// </remarks>
        public string cash_amt { get; set; }

        /// <summary>
        /// 取现方ID号
        /// </summary>
        /// <remarks>
        /// 提取发起方的汇付ID。支持已配置取现规则的商户、用户。
        /// 示例值：6666000109812123
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 账户号
        /// </summary>
        /// <remarks>
        /// 可指定账户号，仅支持基本户、现金户，不填默认为基本户；
        /// 示例值：F00598600
        /// </remarks>
        public string acct_id { get; set; }

        /// <summary>
        /// 到账日期类型
        /// </summary>
        /// <remarks>
        /// D0：当日到账；当日交易资金当天可取现到账；
        /// T1：次工作日到账；
        /// D1：次自然日到账；
        /// DM：当日到账；到账资金不包括当天的交易资金；
        /// 示例值：D0
        /// 非空
        /// </remarks>
        public string into_acct_date_type { get; set; }

        /// <summary>
        /// 取现卡序列号
        /// </summary>
        /// <remarks>
        /// 绑定取现卡后可获取取现卡序列号；
        /// 示例值：10004053462
        /// 非空
        /// </remarks>
        public string token_no { get; set; }

        /// <summary>
        /// 取现渠道
        /// </summary>
        /// <remarks>
        /// 00：汇付（为空默认）； 10：中信e账通；
        /// 示例值：00
        /// </remarks>
        public string enchashment_channel { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        /// <remarks>
        /// 示例值：备注
        /// </remarks>
        public string remark { get; set; }

        /// <summary>
        /// 异步通知地址
        /// </summary>
        /// <remarks>
        /// 示例值：http://service.example.com/to/path
        /// </remarks>
        public string notify_url { get; set; }
    }
    public class HuiFuChashResp {
        /// <summary>
        /// 业务返回码
        /// </summary>
        /// <remarks>
        /// 参见业务返回码，示例值：00000000
        /// 非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务返回描述
        /// </summary>
        /// <remarks>
        /// 业务返回信息，示例值：处理成功
        /// 非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 请求日期
        /// </summary>
        /// <remarks>
        /// 格式：yyyyMMdd；示例值：20211123
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 请求流水号
        /// </summary>
        /// <remarks>
        /// 示例值：202109160899013231200005
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 汇付全局流水号
        /// </summary>
        /// <remarks>
        /// 示例值：002900TOP3A221112165433P410ac139c1300001
        /// </remarks>
        public string hf_seq_id { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>
        /// S：成功 F：失败 P：处理中；
        /// 示例值：S
        /// 非空
        /// </remarks>
        public string trans_stat { get; set; }

        /// <summary>
        /// 商户号/机构号
        /// </summary>
        /// <remarks>
        /// 汇付分配的商户号/机构号，示例值：6666000109812123
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 账户号
        /// </summary>
        /// <remarks>
        /// 可指定账户号，仅支持基本户、现金户，不填默认为基本户；
        /// 示例值：F00598600
        /// </remarks>
        public string acct_id { get; set; }
    }
    public class HuiFuChashAsyncResp {
        /// <summary>
        /// 业务返回码
        /// </summary>
        /// <remarks>
        /// 参见业务返回码，示例值：00000000
        /// 非空
        /// </remarks>
        public string sub_resp_code { get; set; }

        /// <summary>
        /// 业务返回描述
        /// </summary>
        /// <remarks>
        /// 业务返回信息，示例值：处理成功
        /// 非空
        /// </remarks>
        public string sub_resp_desc { get; set; }

        /// <summary>
        /// 业务请求流水号
        /// </summary>
        /// <remarks>
        /// 示例值：202109160899013231200005
        /// 非空
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 业务请求时间
        /// </summary>
        /// <remarks>
        /// 格式：yyyyMMdd；示例值：20211123
        /// 非空
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 汇付全局流水号
        /// </summary>
        /// <remarks>
        /// 示例值：002900TOP3A221112165433P410ac139c1300001
        /// </remarks>
        public string hf_seq_id { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>
        /// S:成功；F:失败；P:处理中；
        /// 示例值：S
        /// </remarks>
        public string trans_status { get; set; }

        /// <summary>
        /// 账务状态
        /// </summary>
        /// <remarks>
        /// S:成功；F:失败；P:处理中；B:回账成功；
        /// 示例值：S
        /// </remarks>
        public string acct_status { get; set; }

        /// <summary>
        /// 通道状态
        /// </summary>
        /// <remarks>
        /// S:成功；F:失败；P:处理中；
        /// 示例值：S
        /// </remarks>
        public string channel_status { get; set; }

        /// <summary>
        /// 手续费
        /// </summary>
        /// <remarks>
        /// 单位：元。示例值：1.23
        /// 非空
        /// </remarks>
        public string fee_amt { get; set; }

        /// <summary>
        /// 取现金额
        /// </summary>
        /// <remarks>
        /// 单位：元。示例值：1.23
        /// 非空
        /// </remarks>
        public string cash_amt { get; set; }

        /// <summary>
        /// 消息类型
        /// </summary>
        /// <remarks>
        /// 01:通道；02:账务；
        /// 示例值：01
        /// </remarks>
        public string msg_type { get; set; }
    }
    #endregion

    #region 退款返回参数
    public class HuiFuRefundResp {
        /// <summary>
        /// 业务响应码
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务响应信息
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 产品号
        /// </summary>
        /// <remarks>
        /// 交易时传入，原样返回；示例值：YYZY
        /// 非空
        /// </remarks>
        public string product_id { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        /// <remarks>
        /// 示例值：6666000108854952
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 请求日期
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMdd，示例值：20220925
        /// 非空
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 请求流水号
        /// </summary>
        /// <remarks>
        /// 交易时传入，原样返回；示例值：rQ2021121311173944134649875651
        /// 非空
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 全局流水号
        /// </summary>
        /// <remarks>
        /// 示例值：00470topo1A221019132207P068ac1362af00000
        /// </remarks>
        public string hf_seq_id { get; set; }

        /// <summary>
        /// 原交易请求日期
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMdd，示例值：20220925
        /// </remarks>
        public string org_req_date { get; set; }

        /// <summary>
        /// 原交易请求流水号
        /// </summary>
        /// <remarks>
        /// 示例值：rQ202112131149875651
        /// </remarks>
        public string org_req_seq_id { get; set; }

        /// <summary>
        /// 退款交易发生日期
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMdd，示例值：20220925
        /// </remarks>
        public string trans_date { get; set; }

        /// <summary>
        /// 退款交易发生时间
        /// </summary>
        /// <remarks>
        /// 格式：HHMMSS，示例值：091010 代表9点10分10秒
        /// </remarks>
        public string trans_time { get; set; }

        /// <summary>
        /// 退款完成时间
        /// </summary>
        /// <remarks>
        /// 格式yyyyMMddHHmmss，示例值：20091225091010
        /// </remarks>
        public string trans_finish_time { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>
        /// P：处理中、S：成功、F：失败；
        /// 示例值：S
        /// </remarks>
        public string trans_stat { get; set; }

        /// <summary>
        /// 退款金额（元）
        /// </summary>
        /// <remarks>
        /// 需保留小数点后两位；示例值：1.00，最低传入0.01
        /// 非空
        /// </remarks>
        public string ord_amt { get; set; }

        /// <summary>
        /// 实际退款金额（元）
        /// </summary>
        /// <remarks>
        /// 需保留小数点后两位，示例值：1.00，最低传入0.01
        /// </remarks>
        public string actual_ref_amt { get; set; }

        /// <summary>
        /// 支付宝返回的响应报文
        /// </summary>
        /// <remarks>
        /// 直连返回字段
        /// </remarks>
        public string alipay_response { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        /// <remarks>
        /// 原样返回；
        /// 示例值：备注
        /// </remarks>
        public string remark { get; set; }

        /// <summary>
        /// 是否垫资退款
        /// </summary>
        /// <remarks>
        /// Y 是垫资出款， N 是普通出款， 为空默认N；
        /// 示例值：N
        /// </remarks>
        public string loan_flag { get; set; }

        /// <summary>
        /// 垫资承担者
        /// </summary>
        /// <remarks>
        /// 为空：各自承担，不为空走第三方垫资；
        /// 示例值：6666000108854952
        /// </remarks>
        public string loan_undertaker { get; set; }

        /// <summary>
        /// 垫资账户类型
        /// </summary>
        /// <remarks>
        /// 01:基本户, 05: 充值户, 默认充值户；
        /// 示例值：05
        /// </remarks>
        public string loan_acct_type { get; set; }

        /// <summary>
        /// 通道返回码
        /// </summary>
        /// <remarks>
        /// 示例值：01020000
        /// </remarks>
        public string bank_code { get; set; }

        /// <summary>
        /// 通道返回描述
        /// </summary>
        /// <remarks>
        /// 示例值：SUCCESS
        /// </remarks>
        public string bank_message { get; set; }

        /// <summary>
        /// 待确认金额
        /// </summary>
        /// <remarks>
        /// 待确认金额；单位元。
        /// 示例值：1.00
        /// </remarks>
        public string unconfirm_amt { get; set; }

        /// <summary>
        /// 资金冻结状态
        /// </summary>
        /// <remarks>
        /// FREEZE：冻结；UNFREEZE：解冻；
        /// 退款发生时，对应原交易的资金冻结状态。
        /// 示例值：UNFREEZE
        /// </remarks>
        public string fund_freeze_stat { get; set; }
    }

    public class HuiFuRefundAsyncResp {
        /// <summary>
        /// 业务响应码
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务响应信息
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        /// <remarks>
        /// 示例值：6666000108854952
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 请求日期
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMdd，示例值：20220925
        /// 非空
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 请求流水号
        /// </summary>
        /// <remarks>
        /// 示例值：rQ202112131117394413651
        /// 非空
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 全局流水号
        /// </summary>
        /// <remarks>
        /// 示例值：0030default220825182711P099ac1f343f00000
        /// </remarks>
        public string hf_seq_id { get; set; }

        /// <summary>
        /// 原交易请求日期
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMdd，示例值：20220925
        /// </remarks>
        public string org_req_date { get; set; }

        /// <summary>
        /// 原交易请求流水号
        /// </summary>
        /// <remarks>
        /// 示例值：rQ202112131149875651
        /// </remarks>
        public string org_req_seq_id { get; set; }

        /// <summary>
        /// 原交易订单金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01
        /// 非空
        /// </remarks>
        public string org_ord_amt { get; set; }

        /// <summary>
        /// 原交易手续费
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01
        /// 非空
        /// </remarks>
        public string org_fee_amt { get; set; }

        /// <summary>
        /// 退款交易发生日期
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMdd，示例值：20220925
        /// 非空
        /// </remarks>
        public string trans_date { get; set; }

        /// <summary>
        /// 退款交易发生时间
        /// </summary>
        /// <remarks>
        /// 格式：HHMMSS，示例值：0910109点10分10秒
        /// </remarks>
        public string trans_time { get; set; }

        /// <summary>
        /// 退款完成时间
        /// </summary>
        /// <remarks>
        /// 格式yyyyMMddHHmmss；示例值：20091225091010
        /// </remarks>
        public string trans_finish_time { get; set; }

        /// <summary>
        /// 交易类型
        /// </summary>
        /// <remarks>
        /// TRANS_REFUND：交易退款；目前仅该一个枚举值；
        /// 示例值：TRANS_REFUND
        /// 非空
        /// </remarks>
        public string trans_type { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>
        /// P：处理中、S：成功、F：失败；
        /// 示例值：
        /// </remarks>
        public string trans_stat { get; set; }

        /// <summary>
        /// 退款金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01
        /// 非空
        /// </remarks>
        public string ord_amt { get; set; }

        /// <summary>
        /// 实际退款金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01
        /// </remarks>
        public string actual_ref_amt { get; set; }

        /// <summary>
        /// 原交易累计退款金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01
        /// 非空
        /// </remarks>
        public string total_ref_amt { get; set; }

        /// <summary>
        /// 原交易累计退款手续费金额
        /// </summary>
        /// <remarks>
        /// 单位元，示例值：1.00；注意：退还手续费规则参见说明文档
        /// 非空
        /// </remarks>
        public string total_ref_fee_amt { get; set; }

        /// <summary>
        /// 累计退款次数
        /// </summary>
        /// <remarks>
        /// 示例值：1
        /// 非空
        /// </remarks>
        public string ref_cut { get; set; }

        /// <summary>
        /// 分账信息
        /// </summary>
        /// <remarks>
        /// 分账信息
        /// 非空
        /// </remarks>
        public object acct_split_bunch { get; set; }

        /// <summary>
        /// 微信支付宝的商户单号
        /// </summary>
        /// <remarks>
        /// 示例值：03232109190255105603561；参见用户账单说明
        /// </remarks>
        public string party_order_id { get; set; }

        /// <summary>
        /// 微信返回的响应报文
        /// </summary>
        /// <remarks>
        /// 直连返回字段
        /// </remarks>
        public object wx_response { get; set; }

        /// <summary>
        /// 数字人民币响应报文
        /// </summary>
        /// <remarks>
        /// jsonObject格式
        /// </remarks>
        public object dc_response { get; set; }

        /// <summary>
        /// 补贴支付信息
        /// </summary>
        /// <remarks>
        /// 参见《补贴支付信息》
        /// </remarks>
        public object combinedpay_data { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        /// <remarks>
        /// 原样返回；
        /// 示例值：备注
        /// </remarks>
        public string remark { get; set; }

        /// <summary>
        /// 通道返回码
        /// </summary>
        /// <remarks>
        /// 示例值：01020000
        /// </remarks>
        public string bank_code { get; set; }

        /// <summary>
        /// 通道返回描述
        /// </summary>
        /// <remarks>
        /// 示例值：SUCCESS
        /// </remarks>
        public string bank_message { get; set; }

        /// <summary>
        /// 银联返回的响应报文
        /// </summary>
        /// <remarks>
        /// Json格式
        /// </remarks>
        public object unionpay_response { get; set; }

        /// <summary>
        /// 资金冻结状态
        /// </summary>
        /// <remarks>
        /// FREEZE：冻结；UNFREEZE：解冻；
        /// 退款发生时，对应原交易的资金冻结状态。
        /// 示例值：UNFREEZE
        /// </remarks>
        public string fund_freeze_stat { get; set; }
    }
    #endregion

    #region 退款查询
    public class HuiFuRefundQueryResp {

        /// <summary>
        /// 业务响应码
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务响应信息
        /// </summary>
        /// <remarks>
        /// 非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        /// <remarks>
        /// 示例值：6666000108854952
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 退款全局流水号
        /// </summary>
        /// <remarks>
        /// 示例值：0030default220825182711P099ac1f343f00000
        /// </remarks>
        public string org_hf_seq_id { get; set; }

        /// <summary>
        /// 退款请求日期
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMdd，示例值：20220925
        /// </remarks>
        public string org_req_date { get; set; }

        /// <summary>
        /// 退款请求流水号
        /// </summary>
        /// <remarks>
        /// 示例值：202110210012100005
        /// </remarks>
        public string org_req_seq_id { get; set; }

        /// <summary>
        /// 退款金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01
        /// 非空
        /// </remarks>
        public string ord_amt { get; set; }

        /// <summary>
        /// 实际退款金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01
        /// </remarks>
        public string actual_ref_amt { get; set; }

        /// <summary>
        /// 交易发生日期
        /// </summary>
        /// <remarks>
        /// 格式为yyyyMMdd，示例值：20220925
        /// </remarks>
        public string trans_date { get; set; }

        /// <summary>
        /// 交易发生时间
        /// </summary>
        /// <remarks>
        /// 格式：HHMMSS；示例值：091010 表示9点10分10秒
        /// </remarks>
        public string trans_time { get; set; }

        /// <summary>
        /// 交易类型
        /// </summary>
        /// <remarks>
        /// 示例值：TRANS_REFUND
        /// </remarks>
        public string trans_type { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>
        /// P：处理中；S：成功；F：失败；I: 初始
        /// 初始状态很罕见，请联系汇付技术人员处理；
        /// 示例值：TRANS_REFUND
        /// </remarks>
        public string trans_stat { get; set; }

        /// <summary>
        /// 通道返回码
        /// </summary>
        /// <remarks>
        /// 示例值：01020000
        /// </remarks>
        public string bank_code { get; set; }

        /// <summary>
        /// 通道返回描述
        /// </summary>
        /// <remarks>
        /// 示例值：SUCCESS
        /// </remarks>
        public string bank_message { get; set; }

        /// <summary>
        /// 手续费金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00，最低传入0.01
        /// </remarks>
        public string fee_amt { get; set; }

        /// <summary>
        /// 分账对象
        /// </summary>
        /// <remarks>
        /// 分账对象，jsonObject字符串
        /// </remarks>
        public string acct_split_bunch { get; set; }

        /// <summary>
        /// 分账手续费信息
        /// </summary>
        /// <remarks>
        /// 分账手续费信息
        /// </remarks>
        public string split_fee_info { get; set; }

        /// <summary>
        /// 补贴支付信息
        /// </summary>
        /// <remarks>
        /// jsonArray字符串；参见《补贴支付信息》
        /// </remarks>
        public string combinedpay_data { get; set; }

        /// <summary>
        /// 补贴部分的手续费
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00
        /// </remarks>
        public string combinedpay_fee_amt { get; set; }

        /// <summary>
        /// 数字货币返回报文
        /// </summary>
        /// <remarks>
        /// 数字货币返回报文
        /// </remarks>
        public string dc_response { get; set; }

        /// <summary>
        /// 原交易用户账单上的商户订单号
        /// </summary>
        /// <remarks>
        /// 原交易微信/支付宝/云闪付支付账单页商户订单号；
        /// 示例值：03232109190255105603561；参见用户账单说明
        /// </remarks>
        public string org_party_order_id { get; set; }
        /// <summary>
        /// 授权号
        /// </summary>
        /// <remarks>
        /// 同一商户当天，同一终端，同一批次号唯一；示例值：727902
        /// </remarks>
        public string auth_no { get; set; }

        /// <summary>
        /// 借贷标识
        /// </summary>
        /// <remarks>
        /// 1-借,2-贷，3-其他(目前只有民生通道返回)；示例值：1
        /// </remarks>
        public string debit_flag { get; set; }

        /// <summary>
        /// 商户名称
        /// </summary>
        /// <remarks>
        /// 示例值：上海汇付支付服务公司
        /// </remarks>
        public string mer_name { get; set; }

        /// <summary>
        /// 商户私有域
        /// </summary>
        /// <remarks>
        /// 示例值：商户私有域
        /// </remarks>
        public string mer_priv { get; set; }

        /// <summary>
        /// 原授权号
        /// </summary>
        /// <remarks>
        /// 示例值：727902
        /// </remarks>
        public string org_auth_no { get; set; }

        /// <summary>
        /// 原外部订单号
        /// </summary>
        /// <remarks>
        /// 示例值：20220810165837685701
        /// </remarks>
        public string org_out_order_id { get; set; }

        /// <summary>
        /// 预授权撤销返还手续费
        /// </summary>
        /// <remarks>
        /// 示例值：0.10
        /// </remarks>
        public string pre_auth_cance_fee_amount { get; set; }

        /// <summary>
        /// 预授权撤销金额
        /// </summary>
        /// <remarks>
        /// 示例值：100.00
        /// </remarks>
        public string pre_auth_cancel_amt { get; set; }

        /// <summary>
        /// 原预授权全局流水号
        /// </summary>
        /// <remarks>
        /// 示例值：0035000topA220628152651P306c0a8217a00000
        /// </remarks>
        public string pre_auth_hf_seq_id { get; set; }

        /// <summary>
        /// 店铺名称
        /// </summary>
        /// <remarks>
        /// 示例值：汇付宝山分公司
        /// </remarks>
        public string shop_name { get; set; }

        /// <summary>
        /// 分期退款金额
        /// </summary>
        /// <remarks>
        /// 单位元 格式:0.00；示例值：1.00
        /// </remarks>
        public string fq_acq_ord_amt { get; set; }

        /// <summary>
        /// 分期退款手续费金额
        /// </summary>
        /// <remarks>
        /// 单位元 格式:0.00；示例值：1.00
        /// </remarks>
        public string fq_acq_fee_amt { get; set; }

        /// <summary>
        /// 除分期外的退款金额
        /// </summary>
        /// <remarks>
        /// 单位元 格式:0.00；示例值：1.00
        /// </remarks>
        public string oth_ord_amt { get; set; }

        /// <summary>
        /// 除分期外的退款手续费金额
        /// </summary>
        /// <remarks>
        /// 单位元 格式:0.00；示例值：1.00
        /// </remarks>
        public string oth_fee_amt { get; set; }

        /// <summary>
        /// 微信返回的响应报文
        /// </summary>
        /// <remarks>
        /// 直连模式返回
        /// </remarks>
        public string wx_response { get; set; }

        /// <summary>
        /// 支付宝返回的响应报文
        /// </summary>
        /// <remarks>
        /// 直连模式返回
        /// </remarks>
        public string alipay_response { get; set; }

        /// <summary>
        /// 退款完成时间
        /// </summary>
        /// <remarks>
        /// 格式yyyyMMddHHmmss；示例值：20091225091010
        /// </remarks>
        public string trans_finish_time { get; set; }

        /// <summary>
        /// 银联返回的响应报文
        /// </summary>
        /// <remarks>
        /// Json格式
        /// </remarks>
        public string unionpay_response { get; set; }

        /// <summary>
        /// 待确认总金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00
        /// </remarks>
        public string unconfirm_amt { get; set; }

        /// <summary>
        /// 已确认总金额
        /// </summary>
        /// <remarks>
        /// 单位元，需保留小数点后两位，示例值：1.00
        /// </remarks>
        public string confirmed_amt { get; set; }
    }
    #endregion
    #region 用户进件
    /// <summary>
    /// 基本开户
    /// </summary>
    public class HuiFuIndvResp {
        /// <summary>
        /// 业务响应码
        /// </summary>
        /// <remarks>
        /// 业务返回码，非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务响应信息
        /// </summary>
        /// <remarks>
        /// 业务返回描述，非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 汇付ID
        /// </summary>
        /// <remarks>
        /// 示例值：6666000123123123
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 管理员账号
        /// </summary>
        /// <remarks>
        /// 示例值：Lg2022022201394910571
        /// </remarks>
        public string login_name { get; set; }

        /// <summary>
        /// 管理员密码
        /// </summary>
        /// <remarks>
        /// 传login_name的时候要返回初始密码；示例值：cwqq304903
        /// </remarks>
        public string login_password { get; set; }
    }
    /// <summary>
    /// 用户业务入驻
    /// </summary>
    public class HuiFuOpenResp {

        /// <summary>
        /// 业务响应码
        /// </summary>
        /// <remarks>
        /// 业务返回码，非空
        /// </remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务响应信息
        /// </summary>
        /// <remarks>
        /// 业务返回描述，非空
        /// </remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 汇付ID
        /// </summary>
        /// <remarks>
        /// 示例值：6666000123123123
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 取现卡序列号
        /// </summary>
        /// <remarks>
        /// 取现卡序列号，交易时使用；示例值：10000406827
        /// </remarks>
        public string token_no { get; set; }

        /// <summary>
        /// 业务配置结果状态列表
        /// </summary>
        /// <remarks>
        /// jsonArray格式
        /// </remarks>
        public string resp_business { get; set; }

        /// <summary>
        /// 申请单号
        /// </summary>
        /// <remarks>
        /// 返回审核中时有值，业务申请单号；示例值：2024022934731647
        /// </remarks>
        public string apply_no { get; set; }

        /// <summary>
        /// 乐接活配置状态
        /// </summary>
        /// <remarks>
        /// 灵工场景下，且合作平台为乐接活时，返回该参数。
        /// </remarks>
        public string ljh_response { get; set; }
    }

    public class HuiFuOpenAsyncResp {
        /// <summary>
        /// 业务返回码
        /// </summary>
        /// <remarks>
        /// 业务返回码，非空
        /// </remarks>
        public string sub_resp_code { get; set; }

        /// <summary>
        /// 业务返回描述
        /// </summary>
        /// <remarks>
        /// 业务返回描述，非空
        /// </remarks>
        public string sub_resp_desc { get; set; }

        /// <summary>
        /// 请求流水号
        /// </summary>
        /// <remarks>
        /// 原请求流水号；示例值：rQ2022101705562413620614285150
        /// 非空
        /// </remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 请求时间
        /// </summary>
        /// <remarks>
        /// 原请求时间YYYYMMDD；示例值：20240123
        /// 非空
        /// </remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 汇付客户号
        /// </summary>
        /// <remarks>
        /// 固定18位，汇付分配的商户号；示例值：6666000123123123
        /// 非空
        /// </remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 通知类型
        /// </summary>
        /// <remarks>
        /// H:灵活用工，A:审核消息，Z：电子账户；示例值：A
        /// 非空
        /// </remarks>
        public string notify_type { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        /// <remarks>
        /// 灵活用工场景且合作平台为汇优财时，1-待开户 2-开户成功待签约 3-开户失败 4-签约成功 5-签约失败；
        /// 示例值：4
        /// </remarks>
        public string state { get; set; }

        /// <summary>
        /// 状态描述
        /// </summary>
        /// <remarks>
        /// 示例值：入驻失败
        /// </remarks>
        public string state_desc { get; set; }

        /// <summary>
        /// 审核信息
        /// </summary>
        /// <remarks>
        /// jsonObject; notify_type = A时返回;
        /// </remarks>
        public string audit_info { get; set; }

        /// <summary>
        /// 斗拱e账户开通结果
        /// </summary>
        /// <remarks>
        /// jsonObject格式；notify_type=Z时返回
        /// </remarks>
        public string elec_acct_result { get; set; }
    }
    #endregion

    #region 余额支付
    public class HuiFuYuEPayResp {
        /// <summary>
        /// 业务返回码
        /// </summary>
        /// <remarks>必填</remarks>
        public string resp_code { get; set; }

        /// <summary>
        /// 业务返回描述
        /// </summary>
        /// <remarks>必填</remarks>
        public string resp_desc { get; set; }

        /// <summary>
        /// 请求流水号
        /// </summary>
        /// <remarks>必填</remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 请求日期
        /// </summary>
        /// <remarks>必填</remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        /// <remarks>必填</remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 出款商户号
        /// </summary>
        /// <remarks>非必填</remarks>
        public string out_huifu_id { get; set; }

        /// <summary>
        /// 支付金额
        /// </summary>
        /// <remarks>必填</remarks>
        public string ord_amt { get; set; }

        /// <summary>
        /// 分账对象
        /// </summary>
        /// <remarks>必填</remarks>
        public string acct_split_bunch { get; set; }

        /// <summary>
        /// 全局流水号
        /// </summary>
        /// <remarks>非必填</remarks>
        public string hf_seq_id { get; set; }

        /// <summary>
        /// 商品描述
        /// </summary>
        /// <remarks>非必填</remarks>
        public string good_desc { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>非必填</remarks>
        public string trans_stat { get; set; }

        /// <summary>
        /// 交易完成时间
        /// </summary>
        /// <remarks>非必填</remarks>
        public string trans_finish_time { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        /// <remarks>非必填</remarks>
        public string remark { get; set; }

        /// <summary>
        /// 出款方账户号
        /// </summary>
        /// <remarks>非必填</remarks>
        public string out_acct_id { get; set; }

        /// <summary>
        /// 资金类型
        /// </summary>
        /// <remarks>条件必填，支付渠道为中信E管家时必填</remarks>
        public string fund_type { get; set; }

        /// <summary>
        /// 支付渠道
        /// </summary>
        /// <remarks>非必填</remarks>
        public string acct_channel { get; set; }

        /// <summary>
        /// 灵活用工标志
        /// </summary>
        /// <remarks>非必填</remarks>
        public string hyc_flag { get; set; }

        /// <summary>
        /// 灵活用工平台
        /// </summary>
        /// <remarks>非必填</remarks>
        public string lg_platform_type { get; set; }

        /// <summary>
        /// 代发模式
        /// </summary>
        /// <remarks>非必填</remarks>
        public string salary_modle_type { get; set; }

        /// <summary>
        /// 落地公司商户号
        /// </summary>
        /// <remarks>非必填</remarks>
        public string bmember_id { get; set; }

        /// <summary>
        /// 灵活用工代发批次号
        /// </summary>
        /// <remarks>非必填</remarks>
        public string hyc_attach_id { get; set; }

        /// <summary>
        /// 乐接活返回参数集合
        /// </summary>
        /// <remarks>非必填</remarks>
        public string ljh_response { get; set; }

        /// <summary>
        /// 手续费承担方标识
        /// </summary>
        /// <remarks>条件必填，余额支付手续费承担方标识；商户余额支付扣收规则为接口指定承担方时必填</remarks>
        public string trans_fee_take_flag { get; set; }

        /// <summary>
        /// 待确认总金额
        /// </summary>
        /// <remarks>非必填</remarks>
        public string unconfirm_amt { get; set; }

        /// <summary>
        /// 已确认总金额
        /// </summary>
        /// <remarks>非必填</remarks>
        public string confirmed_amt { get; set; }
    }

    public class HuiFuYuEPayAsyncResp {
        /// <summary>
        /// 交易请求日期
        /// </summary>
        /// <remarks>必填，业务请求时间格式为YYYYMMDD（发起余额支付请求时间）</remarks>
        public string req_date { get; set; }

        /// <summary>
        /// 交易请求流水号
        /// </summary>
        /// <remarks>必填，业务请求流水号（发起余额支付请求流水号）</remarks>
        public string req_seq_id { get; set; }

        /// <summary>
        /// 全局流水号
        /// </summary>
        /// <remarks>非必填，汇付返回流水号</remarks>
        public string hf_seq_id { get; set; }

        /// <summary>
        /// 产品号
        /// </summary>
        /// <remarks>必填</remarks>
        public string product_id { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        /// <remarks>必填，发起方商户号</remarks>
        public string huifu_id { get; set; }

        /// <summary>
        /// 订单金额
        /// </summary>
        /// <remarks>必填</remarks>
        public string ord_amt { get; set; }

        /// <summary>
        /// 交易类型
        /// </summary>
        /// <remarks>必填，余额支付：ACCT_PAYMENT</remarks>
        public string trans_type { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>必填，PSF P:处理中；S：成功；F：失败；C：完成。状态为完成时，需查看分账对象中每个分账的具体状态</remarks>
        public string trans_stat { get; set; }

        /// <summary>
        /// 灵活用工标志
        /// </summary>
        /// <remarks>非必填，灵活用工标志 Y：灵活用工，N：非灵活用工(默认)</remarks>
        public string hyc_flag { get; set; }

        /// <summary>
        /// 灵活用工代发批次号
        /// </summary>
        /// <remarks>非必填，灵活用工代发批次号，灵活用工平台为汇优财时返回</remarks>
        public string hyc_attach_id { get; set; }

        /// <summary>
        /// 分账对象
        /// </summary>
        /// <remarks>必填，分账对象，jsonObject字符串</remarks>
        public string acct_split_bunch { get; set; }
    }


    #endregion
}
