package com.jeesharp.business.modules.pay.paytype.pufapay.order.dto;

import com.jeesharp.business.modules.pay.constant.PayMessage;
import lombok.Data;

/**
 * @Author: wangmeng
 * @CreateTime: 2023-05-17  15:35
 * @Description: APP支付交易查证相应报文
 */
@Data
public class AppPayStatusResp extends AppBaseResp {

    @PayMessage(name = "交易流水号", value = "transNo", isMax = true, maxLength = 26)
    private String transNo;

    @PayMessage(name = "子商户公众账号ID", value = "subMechNoAcctID", isMax = true, maxLength = 32,
            description = "微信返回")
    private String subMechNoAcctID;

    @PayMessage(name = "用户标识", value = "usrFlg", isMax = true, maxLength = 128
            , description = "微信返回")
    private String usrFlg;

    @PayMessage(name = "是否关注公众账号", value = "isSbscrbFlg", isMax = true, maxLength = 1
            , description = "微信返回")
    private String isSbscrbFlg;

    @PayMessage(name = "用户子标识", value = "usrChildFlg", isMax = true, maxLength = 128
            , description = "微信返回")
    private String usrChildFlg;

    @PayMessage(name = "是否关注子公众账号", value = "isFlag", isMax = true, maxLength = 1
            , description = "微信返回")
    private String isFlag;

    @PayMessage(name = "现金支付金额", value = "pymtAmount", isMax = true, maxLength = 12
            , description = "微信必输")
    private String pymtAmount;

    @PayMessage(name = "商家数据包", value = "busnPckt", isMax = true, maxLength = 128,
            description = "微信JSAPI/微信APP异步通知返回")
    private String busnPckt;

    @PayMessage(name = "营销详情", value = "clueDtl", isMax = true, maxLength = 6000,
            description = "透传，微信新增必输返回，营销详情列表，使返回值为Json格式")
    private String clueDtl;

    @PayMessage(name = "订单总金额", value = "totalAmt", isMax = true, maxLength = 12,
            description = "预留,微信退款查询必输,支付宝退款查询返回")
    private String totalAmt;

    @PayMessage(name = "应结订单金额", value = "setlAmt", isMax = true, maxLength = 12,
            description = "微信退款查询返回")
    private String setlAmt;

    @PayMessage(name = "退款渠道", value = "wthdrwnUsAmtCnl", isMax = true, maxLength = 16,
            description = "微信退款查询返回")
    private String wthdrwnUsAmtCnl;

    @PayMessage(name = "退款金额", value = "rfndAmt", isMax = true, maxLength = 12,
            description = "微信退款查询返回")
    private String rfndAmt;

    @PayMessage(name = "代金券退款总金", value = "rfdAmt", isMax = true, maxLength = 12,
            description = "优惠功能预留，微信退款查询返回")
    private String rfdAmt;

    @PayMessage(name = "退款代金券使用", value = "vcherNum", isMax = true, maxLength = 12,
            description = "优惠功能预留，微信退款查询返回")
    private String vcherNum;

    @PayMessage(name = "退款资金来源", value = "fundSource", isMax = true, maxLength = 30,
            description = "预留，微信退款查询返回")
    private String fundSource;

    @PayMessage(name = "退款入账账户", value = "inAcctName", isMax = true, maxLength = 64,
            description = "预留，微信退款查询必输")
    private String inAcctName;

    @PayMessage(name = "退款原因", value = "rfndRlst", isMax = true, maxLength = 256,
            description = "预留，支付宝退款查询返回")
    private String rfndRlst;

    @PayMessage(name = "买家的支付宝账号", value = "byrOfAlipayAcctNO", isMax = true, maxLength = 100
            , description = "预留，支付宝返回")
    private String byrOfAlipayAcctNO;

    @PayMessage(name = "实收金额", value = "actRcvAmt", isMax = true, maxLength = 12
            , description = "优惠功能预留，支付宝查询返回")
    private String actRcvAmt;

    @PayMessage(name = "买家付款的金额", value = "byrPayAmt", isMax = true, maxLength = 12
            , description = "优惠功能预留，支付宝查询返回")
    private String byrPayAmt;

    @PayMessage(name = "使用积分宝付款的金额 ", value = "usPntsPayAmt", isMax = true, maxLength = 12
            , description = "优惠功能预留，支付宝查询返回")
    private String usPntsPayAmt;

    @PayMessage(name = "可给用户开具发票的金额 ", value = "toUsEstbInvAmt", isMax = true, maxLength = 12
            , description = "预留，支付宝查询返回")
    private String toUsEstbInvAmt;

    @PayMessage(name = "支付宝的店铺编号", value = "clientID", isMax = true, maxLength = 64
            , description = "预留，支付宝查询返回")
    private String clientID;

    @PayMessage(name = "交易支付使用的资金渠道", value = "inrChlCnlNo", isMax = true, maxLength = 1000
            , description = "预留，支付宝查询必输")
    private String inrChlCnlNo;

    @PayMessage(name = "商户门店名称", value = "mrchStrNm", isMax = true, maxLength = 512
            , description = "预留，支付宝查询返回")
    private String mrchStrNm;

    @PayMessage(name = "买家在支付宝的用户id", value = "userId", isMax = true, maxLength = 28
            , description = "预留，支付宝查询返回")
    private String userId;

    @PayMessage(name = "单品券优惠的商品优惠信息", value = "addItInNal", isMax = true, maxLength = 1024
            , description = "优惠功能预留，支付宝查询返回")
    private String addItInNal;

    @PayMessage(name = "行业特殊信息", value = "infoDsc", isMax = true, maxLength = 512
            , description = "预留，支付宝查询返回")
    private String infoDsc;

    @PayMessage(name = "所有优惠券信息", value = "fldData", isMax = true, maxLength = 6000
            , description = "优惠功能预留，支付宝查询返回")
    private String fldData;

    @PayMessage(name = "第三方返回码", value = "thdPtyRtCd", isMax = true, maxLength = 16
            , description = "第三方返回码")
    private String thdPtyRtCd;

    @PayMessage(name = "第三方返回信息", value = "thdPtyRtCd", isMax = true, maxLength = 128
            , description = "第三方返回信息")
    private String thdPtyRtInfo;

    @PayMessage(name = "第三方主商户号", value = "trdMerMechNo", isMax = true, maxLength = 32
            , description = "微信支付分配的商户号")
    private String trdMerMechNo;

    @PayMessage(name = "第三方子商户号", value = "aLPAYSubMrchNo", isMax = true, maxLength = 32
            , description = "微信支付分配的子商户号")
    private String aLPAYSubMrchNo;

    @PayMessage(name = "第三方错误码", value = "thdPtyErrCd", isMax = true, maxLength = 32
            , description = "第三方错误码")
    private String thdPtyErrCd;

    @PayMessage(name = "第三方错误信息", value = "thdPtyErrInfo", isMax = true, maxLength = 128
            , description = "第三方错误信息")
    private String thdPtyErrInfo;

    @PayMessage(name = "终端号", value = "terminalNo", isMax = true, maxLength = 64
            , description = "终端设备编号")
    private String terminalNo;

    @PayMessage(name = "交易类型", value = "tranType", isMax = true, maxLength = 2
            , description = "预留，订单支付模式：OA-微信公众号支付OB-微信动态扫码支付OC-微信刷卡支付OD-支付宝固定二维码支付OE-支付宝动态扫码支付" +
            "OF-支付宝条码支付OG-微信APP支付OH-微信H5支付OM-微信小程序支付")
    private String tranType;

    @PayMessage(name = "订单状态", value = "ordrSt", isMax = true, maxLength = 2
            , description = "订单处理结果状态请查看 该字段：00-交易成功01-交易失败03-部分退货04-全部退货05-退货中09-支付中99-超时")
    private String ordrSt;

    @PayMessage(name = "支付银行", value = "isFlag", isMax = true, maxLength = 16
            , description = "第三方返回的银行类型，采用字符串类型的银行标识")
    private String afdsPayBank;

    @PayMessage(name = "交易金额", value = "cmdtyInfo", isMax = true, maxLength = 6000
            , description = "商品详细列表，使用Json格式，传输签名前请务必使用CDATA标签将JSON文本串保护起来。如果使用了单品优惠，会有单品优惠信息返回")
    private String cmdtyInfo;

    @PayMessage(name = "商品详情", value = "transAmt", isMax = true, maxLength = 12
            , description = "订单结算金额，如果为退货订单，则为申请退款金额如果为撤销订单，交易金额为原订单金额。(所有金额统一以“元”为单位,两位小数)")
    private String transAmt;

    @PayMessage(name = "币种", value = "ccy", isMax = true, maxLength = 2
            , description = "目前只支持01-人民币")
    private String ccy;

    @PayMessage(name = "第三方平台时间", value = "thdPltfrmTm", isMax = true, maxLength = 14
            , description = "微信的交易时间，格式yyyyMMddHHmmss")
    private String thdPltfrmTm;

    @PayMessage(name = "第三方流水", value = "thdPtySeq", isMax = true, maxLength = 64
            , description = "微信支付的订单号")
    private String thdPtySeq;

    @PayMessage(name = "收单系统订单号", value = "tranOrdrNo", isMax = true, maxLength = 32
            , description = "我行收单系统生成的订单号")
    private String tranOrdrNo;

    @PayMessage(name = "交易日期", value = "tranDate", isMax = true, maxLength = 8
            , description = "我行的交易日期")
    private String tranDate;

    @PayMessage(name = "商户订单号", value = "mrchOrdrNo", isMax = true, maxLength = 48
            , description = " 商户系统的内部订单号")
    private String mrchOrdrNo;

    @PayMessage(name = "清算日期", value = "clrgDate", isMax = true, maxLength = 8
            , description = "清算日期")
    private String clrgDate;

    @PayMessage(name = "交易时间", value = "tranTimep", isMax = true, maxLength = 14
            , description = "我行交易时间")
    private String tranTimep;

    @PayMessage(name = "商户日期", value = "mrchDate", isMax = true, maxLength = 8
            , description = "商户系统的交易日期")
    private String mrchDate;

    @PayMessage(name = "商户时间", value = "mrchTm", isMax = true, maxLength = 14
            , description = "商户系统的交易时间，格式：yyyyMMddHHmmss")
    private String mrchTm;

    @PayMessage(name = "原商户订单号", value = "frmrMrchOrdrNo", isMax = true, maxLength = 48
            , description = "如果没有原订单，为空")
    private String frmrMrchOrdrNo;

    @PayMessage(name = "原商户日期", value = "frmrMrchDate", isMax = true, maxLength = 8
            , description = "如果没有原订单，为空")
    private String frmrMrchDate;

    @PayMessage(name = "原收单系统订单号", value = "mrchOrigOrdrNo", isMax = true, maxLength = 32
            , description = "我行的原支付交易订单号，由收单系统生成，若没有原订单，则为空")
    private String mrchOrigOrdrNo;

    @PayMessage(name = "原清算日期", value = "orgClrgDt", isMax = true, maxLength = 8
            , description = "如果没有原订单，为空")
    private String orgClrgDt;

    @PayMessage(name = "交易代码", value = "tranCode", isMax = true, maxLength = 4
            , description = "订单交易类型：OOPY-支付OORF-退货OORV-撤销")
    private String tranCode;

    @PayMessage(name = "商户号", value = "spdbMrchNo", isMax = true, maxLength = 15
            , description = "我行给商户分配的商户号")
    private String spdbMrchNo;

    @PayMessage(name = "商户开户行", value = "openBrNo", isMax = true, maxLength = 2
            , description = "商户的开户行行号")
    private String openBrNo;

    @PayMessage(name = "商户开户行机构号", value = "instId", isMax = true, maxLength = 4
            , description = "商户的开户行机构号")
    private String instId;

    @PayMessage(name = "商户发展行", value = "mrchDvlpmBnkNo", isMax = true, maxLength = 2
            , description = " 商户的发展行行号")
    private String mrchDvlpmBnkNo;

    @PayMessage(name = "商户发展行机构号", value = "mrchDvlpmBnkBrId", isMax = true, maxLength = 4
            , description = " 商户的发展行机构号")
    private String mrchDvlpmBnkBrId;

    @PayMessage(name = "门店编号", value = "strNo", isMax = true, maxLength = 32
            , description = " 返回订单的输入")
    private String strNo;

    @PayMessage(name = "收银员编号", value = "cshrNo", isMax = true, maxLength = 32
            , description = " 返回订单的输入")
    private String cshrNo;

    @PayMessage(name = "商户通知地址", value = "mrchlInfmAdr", isMax = true, maxLength = 200
            , description = "此字段无效，总行通过ESB发送通知给分行")
    private String mrchlInfmAdr;

    @PayMessage(name = "渠道号", value = "channelNo", isMax = true, maxLength = 2
            , description = "返回订单的输入：0-其他1-PC2-移动端")
    private String channelNo;

    @PayMessage(name = "已退金额", value = "hvWthdrwnAmt", isMax = true, maxLength = 12)
    private String hvWthdrwnAmt;

    @PayMessage(name = "可退金额", value = "rfndblAmt", isMax = true, maxLength = 12)
    private String rfndblAmt;

    @PayMessage(name = "已退第三方手续费金额", value = "hvThdChrgAmt", isMax = true, maxLength = 12)
    private String hvThdChrgAmt;

    @PayMessage(name = "备用金额字段(暂不使用)", value = "reserveAmt", isMax = true, maxLength = 12)
    private String reserveAmt;

    @PayMessage(name = "商户手续费金额", value = "chrgAmt", isMax = true, maxLength = 12)
    private String chrgAmt;

    @PayMessage(name = "第三方手续费", value = "charges", isMax = true, maxLength = 12)
    private String charges;

    @PayMessage(name = "交易阶段", value = "tranStatus", isMax = true, maxLength = 1
            , description = "0-未对账1-对账成功2-对账失败3-清分成功4-清分失败5-结算成功6-结算失败")
    private String tranStatus;

    @PayMessage(name = "订单处理状态", value = "ordrPcsSt", isMax = true, maxLength = 1
            , description = "0-处理结束9-处理中")
    private String ordrPcsSt;

    @PayMessage(name = "交易返回码", value = "trdRtCd", isMax = true, maxLength = 4
            , description = "响应状态码：00-成功 其他错误码")
    private String trdRtCd;

    @PayMessage(name = "商户费率ID", value = "feeRtId", isMax = true, maxLength = 8)
    private String feeRtId;

    @PayMessage(name = "商品描述", value = "cmdtyDsc", isMax = true, maxLength = 128
            , description = "返回订单的输入")
    private String cmdtyDsc;

    @PayMessage(name = "支付卡类型", value = "crdType", isMax = true, maxLength = 12
            , description = "1-借记卡U-信用卡")
    private String crdType;

    @PayMessage(name = "最后退货期限", value = "bussTrm", isMax = true, maxLength = 8
            , description = "该笔订单的最后退货期限")
    private String bussTrm;

    @PayMessage(name = "第三方编号", value = "activeNo", isMax = true, maxLength = 15
            , description = "我行给第三方分配的编号")
    private String activeNo;

    @PayMessage(name = "备注1", value = "remark1", isMax = true, maxLength = 30
            , description = "返回订单的输入")
    private String remark1;

    @PayMessage(name = "备注2", value = "remark2", isMax = true, maxLength = 100
            , description = "返回订单的输入")
    private String remark2;

    @PayMessage(name = "优惠退款详情", value = "dcnRfdDtl", isMax = true, maxLength = 2000
            , description = "银联返回的优惠退款详情")
    private String dcnRfdDtl;

    @PayMessage(name = "退款创建时间", value = "crtTm", isMax = true, maxLength = 20
            , description = "银联微信退款创建时间")
    private String crtTm;

    @PayMessage(name = "现金退款金额", value = "cashRfndAmt", isMax = true, maxLength = 12
            , description = "银联微信现金退款金额")
    private String cashRfndAmt;

    @PayMessage(name = "公众账号ID", value = "pblcAcctId", isMax = true, maxLength = 32
            , description = "微信主商户的公众账号ID")
    private String pblcAcctId;

    @PayMessage(name = "业务结果", value = "bussDsc", isMax = true, maxLength = 32
            , description = " SUCCESS/FAIL")
    private String bussDsc;

    @PayMessage(name = "微信交易状态", value = "trdStInfo", isMax = true, maxLength = 32
            , description = "微信交易状态")
    private String trdStInfo;

    @PayMessage(name = "交易状态描述", value = "bsnStCmnt", isMax = true, maxLength = 256
            , description = "交易状态描述")
    private String bsnStCmnt;

    @PayMessage(name = "微信退款状态", value = "weRfndStatus", isMax = true, maxLength = 16
            , description = "微信退款状态")
    private String weRfndStatus;

    @PayMessage(name = "标价币种", value = "aLTrnCrc", isMax = true, maxLength = 5
            , description = "支付宝返回的标价币种")
    private String aLTrnCrc;

    @PayMessage(name = "预授权支付模式", value = "pymtMd", isMax = true, maxLength = 64
            , description = "预授权支付模式，仅在信用预授权支付场景下返回。")
    private String pymtMd;

    @PayMessage(name = "商家优惠金额", value = "mdsctAmnt", isMax = true, maxLength = 12
            , description = "商家优惠金额")
    private String mdsctAmnt;

    @PayMessage(name = "平台优惠金额", value = "dscntAmnt", isMax = true, maxLength = 12
            , description = "平台优惠金额")
    private String dscntAmnt;

    @PayMessage(name = "买家用户类型", value = "byUserType", isMax = true, maxLength = 18
            , description = "买家用户类型")
    private String byUserType;

    @PayMessage(name = "本次交易打款给卖家的时间", value = "acceptEndTime", isMax = true, maxLength = 14
            , description = "支付宝本次交易打款给卖家的时间，格式:yyyyMMddHHmmss")
    private String acceptEndTime;

    @PayMessage(name = "支付宝退款状态", value = "pftSt", isMax = true, maxLength = 32
            , description = "只在使用异步退款接口情况下才返回该字段REFUND_PROCESSING退款处理中;REFUND_SUCCESS退款处理成功;REFUND_FAIL退款失败；")
    private String pftSt;

    @PayMessage(name = "支付宝退款失败错误码", value = "errCode", isMax = true, maxLength = 32
            , description = "只在使用异步退款接口情况下才返回该字段")
    private String errCode;

    @PayMessage(name = "本次退款金额中买家退款金额", value = "byrRfndAmnt", isMax = true, maxLength = 12
            , description = "本次退款金额中买家退款金额")
    private String byrRfndAmnt;

    @PayMessage(name = "本次退款金额中平台优惠退款金额", value = "dscntRfndAmnt", isMax = true, maxLength = 12
            , description = "本次退款金额中平台优惠退款金额")
    private String dscntRfndAmnt;

    @PayMessage(name = "本次退款金额中商家优惠退款金额", value = "mdsctRfndAmnt", isMax = true, maxLength = 12
            , description = "本次退款金额中商家优惠退款金额")
    private String mdsctRfndAmnt;

    @PayMessage(name = "交易通道", value = "trdChnl", isMax = true, maxLength = 10
            , description = "WX-微信AL-支付宝UPWX-银联微信UPAL-银联支付宝NUWX-网联微信NUAL-网联支付宝")
    private String trdChnl;

    @PayMessage(name = "备用字段1", value = "rsrvFld1", isMax = true, maxLength = 100)
    private String rsrvFld1;

    @PayMessage(name = "备用字段2", value = "rsrvFld2", isMax = true, maxLength = 100)
    private String rsrvFld2;

    @PayMessage(name = "备用字段3", value = "rsrvFld3", isMax = true, maxLength = 100)
    private String rsrvFld3;

    @PayMessage(name = "备用字段4", value = "rsrvFld4", isMax = true, maxLength = 200)
    private String rsrvFld4;

    @PayMessage(name = "备用字段5", value = "rsrvFld5", isMax = true, maxLength = 200)
    private String rsrvFld5;

    @PayMessage(name = "备用字段6", value = "rsrvFld6", isMax = true, maxLength = 200)
    private String rsrvFld6;

    @PayMessage(name = "备用字段7", value = "rsrvFld7", isMax = true, maxLength = 512)
    private String rsrvFld7;

    @PayMessage(name = "备用字段8", value = "rsrvFld8", isMax = true, maxLength = 512)
    private String rsrvFld8;

    @PayMessage(name = "代金券类型", value = "vchrTpCd", isMax = true, maxLength = 8
            , description = "微信退款查询返回")
    private String vchrTpCd;

    @PayMessage(name = "退款代金券ID", value = "rfndVchrId", isMax = true, maxLength = 20
            , description = "微信退款查询返回")
    private String rfndVchrId;

    @PayMessage(name = "单个代金券退款", value = "snglVchrWthdrwnAmt", isMax = true, maxLength = 12
            , description = "微信退款查询返回")
    private String snglVchrWthdrwnAmt;

}
