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 AppPayTradeResp 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 = "terminalNo", isMax = true, maxLength = 64
            , description = "终端设备编号")
    private String terminalNo;

    @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 = "isFlag", isMax = true, maxLength = 16
            , description = "第三方返回的银行类型，微信返回")
    private String afdsPayBank;

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

    @PayMessage(name = "订单总金额", value = "marginTotalAmt", isMax = true, maxLength = 12
            , description = "微信返回，订单标价总金额(所有金额统一以“元”为单位,两位小数)")
    private String marginTotalAmt;

    @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 = "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 = "inrChlCnlNo", isMax = true, maxLength = 1000
            , description = "条码支付返回")
    private String inrChlCnlNo;

    @PayMessage(name = "支付宝卡余额", value = "alPayCdBal", isMax = true, maxLength = 12
            , description = "条码支付返回")
    private String alPayCdBal;

    @PayMessage(name = "商户门店名称", value = "mrchStrNm", isMax = true, maxLength = 512
            , description = "条码支付返回")
    private String mrchStrNm;

    @PayMessage(name = "买家的支付宝用户id", value = "byrAlpayID", isMax = true, maxLength = 28
            , description = "条码支付必输")
    private String byrAlpayID;

    @PayMessage(name = "单品券优惠的商品优惠信息", value = "addItInNal", isMax = true, maxLength = 1024
            , description = "条码支付必输")
    private String addItInNal;

    @PayMessage(name = "所有优惠券信息", value = "fldData", isMax = true, maxLength = 6000
            , description = "条码支付返回")
    private String fldData;

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

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

    @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 = "tranAmt", isMax = true, maxLength = 12
            , description = "订单现金支付金额")
    private String tranAmt;

    @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 = "qrCdLink", isMax = true, maxLength = 512
            , description = "二维码链接/支付跳转链接")
    private String qrCdLink;

    @PayMessage(name = " 预支付交易会话标识", value = "praPayCmmFlg", isMax = true, maxLength = 512
            , description = " 预支付交易会话标识")
    private String praPayCmmFlg;

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

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

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

    @PayMessage(name = "签名", value = "signature", isMax = true, maxLength = 512
            , description = "微信JSAPI/微信APP支付必返回，我行生成的调起支付接口的签名")
    private String signature;

    @PayMessage(name = "签名数据", value = "sgnData", isMax = true, maxLength = 512
            , description = "微信JSAPI/微信APP支付必返回，调起支付接口的签名数据明文")
    private String sgnData;

    @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 = "busInfo", isMax = true, maxLength = 512
            , description = "商户传入的业务信息，具体值要和支付宝约定，将商户传入信息分发给相应系统。")
    private String busInfo;

    @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 = "apndPyMd", isMax = true, maxLength = 20
            , description = "ASYNC_DELAY_PAY( 异步延时付款);ASYNC_REALTIME_PAY(异步准实时付款);SYNC_DIRECT_PAY(同步直接扣款);")
    private String apndPyMd;

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

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

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

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

    @PayMessage(name = "错误代码", value = "thdPtyErrCd", isMax = true, maxLength = 64
            , description = "微信错误码")
    private String thdPtyErrCd;

    @PayMessage(name = "错误信息", value = "errInfo", isMax = true, maxLength = 128
            , description = "微信错误信息描述")
    private String errInfo;

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

}
