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

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

/**
 * 调用“APP支付退货交易”API，对交易成功的订单进行退货处理
 * @Author: wangmeng
 * @CreateTime: 2023-05-17  15:35
 * @Description: APP支付退货交易提交报文
 */
@Data
public class AppPayReturn extends AppBaseReq{

    private String requestMethod="POST";

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

    @PayMessage(name = "退款原因", value = "rfndRlst", isMax = true, maxLength = 128,
            description = "退款原因")
    private String rfndRlst;

    @PayMessage(name = "退款资金来源", value = "fundSource", isMax = true, maxLength = 30,
            description = "只有微信输入")
    private String fundSource;

    @PayMessage(name = "终端号", value = "terminalNo", isMax = true, maxLength = 64
            , description = "终端设备编号，浦发收单分配")
    private String terminalNo;

    @PayMessage(name = "商户号", value = "spdbMrchNo", isMax = true, maxLength = 15, must = "Y"
            , description = "浦发收单给商户分配的特约商户号")
    private String spdbMrchNo;

    @PayMessage(name = "交易金额", value = "tranAmt", isMax = true, maxLength = 12, must = "Y"
            , description = "本次申请退款的金额，该金额不能大于订单金额,单位为元，支持两位小数")
    private String tranAmt;

    @PayMessage(name = "原收单系统订单号", value = "mrchOrigOrdrNo", isMax = true, maxLength = 32, must = "Y"
            , description = "收单系统原支付交易订单号，由收单系统生成")
    private String mrchOrigOrdrNo;

    @PayMessage(name = "原交易日期", value = "origTranDate", isMax = true, maxLength = 8
            , description = "原支付订单的交易日期，格式'yyyyMMdd'")
    private String origTranDate;

    @PayMessage(name = "原商户订单号", value = "frmrMrchOrdrNo", isMax = true, maxLength = 48
            , description = "商户提供的支付订单的原商户订单号（原交易流水号和原清算日期，原商户订单号和原商户日期，必填一组。）")
    private String frmrMrchOrdrNo;

    @PayMessage(name = "原商户日期", value = "frmrMrchDate", isMax = true, maxLength = 8
            , description = "商户发送原支付订单的日期 ， 格式yyyyMMdd")
    private String frmrMrchDate;

    @PayMessage(name = "商户订单号", value = "mrchOrdrNo", isMax = true, maxLength = 48, must = "Y"
            , description = "商户提供的退款订单的商户订单号")
    private String mrchOrdrNo;

    @PayMessage(name = "商户时间", value = "mrchTm", isMax = true, maxLength = 14, must = "Y"
            , description = "商户系统发送退货请求的时间 ，格式:yyyyMMddHHmmss")
    private String mrchTm;

    @PayMessage(name = "门店编号", value = "strID", isMax = true, maxLength = 32
            ,description="商户的门店编号")
    private String strID;

    @PayMessage(name = "收银员编号", value = "cshrNo", isMax = true, maxLength = 32
            , description = "商户收银员编号")
    private String cshrNo;

    @PayMessage(name = "商户通知地址", value = "mrchlInfmAdr", isMax = true, maxLength = 200
            , description = "异步通知地址默认为后台配置，无需上送。若回调地址为动态地址或其他特殊要求，可联系后台老师采用字段上送方式，此时该字段必输")
    private String mrchlInfmAdr;

    @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 = "cmdtyDtl", isMax = true, maxLength = 128
            , description = "支付宝退款包含的商品列表信息")
    private String cmdtyDtl;

    @PayMessage(name = "网联IDC标识", value = "cmdtyDtl", isMax = true, maxLength = 2
            , description = "网联IDC标识idc_flag")
    private String iDCFlg;

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

}
