package org.tio.sitexxx.service.service.pay.vo.ncount;

import lombok.Data;
import org.tio.sitexxx.service.service.pay.vo.ncount.base.NCountBaseVo;

/**
 * <pre>
 *    @author : vagrancy
 *    e-mail : 18050829067@163.com
 *    time   : 2025-11-25 10:36
 *    desc   :
 * </pre>
 */
@Data
public class NRechargeVo extends NCountBaseVo {

    private static final long		serialVersionUID	= 8911458857618988529L;
    public static final String[]	encryptArr			= new String[] { "tranAmount", "payType", "cardNo", "holderName", "cardAvailableDate", "cvv2", "mobileNo", "identityType",
            "identityCode", "bindCardAgrNo", "notifyUrl", "orderExpireTime", "userId", "receiveUserId", "merUserIp", "riskExpand", "goodsInfo", "subMerchantId", "divideFlag",
            "divideDetail" };
    public static final String[]	verifyArr			= new String[] { "version", "tranCode", "merOrderId", "merId", "charset", "signType", "resultCode", "errorCode",
            "ncountOrderId", "submitTime" };
    public static final String[]	submitArr			= new String[] { "version", "tranCode", "merId", "merOrderId", "submitTime", "msgCiphertext", "signType", "signValue",
            "merAttach", "charset" };

    /**
     * 支付金额
     */
    private String tranAmount;

    /**
     * 支付方式
     */
    private String payType;

    /**
     * 支付银行卡卡号
     */
    private String cardNo;

    /**
     * 持卡人姓名
     */
    private String holderName;

    /**
     * 信用卡有效期
     */
    private String cardAvailableDate;

    /**
     * 信用卡CVV2
     */
    private String cvv2;

    /**
     * 银行签约手机号
     */
    private String mobileNo;

    /**
     * 证件类型
     */
    private String identityType;

    /**
     * 证件号码
     */
    private String identityCode;

    /**
     * 绑卡协议号
     */
    private String bindCardAgrNo;

    /**
     * 商户前台跳转地址
     */
    private String frontUrl;

    /**
     * 商户异步通知地址
     */
    private String notifyUrl;

    /**
     * 订单过期时长
     */
    private String orderExpireTime;

    /**
     * 商户用户ID
     */
    private String userId;

    /**
     * 商户用户IP
     */
    private String merUserIp;

    /**
     * 风控扩展信息
     */
    private String riskExpand;

    /**
     * 商品信息
     */
    private String goodsInfo;

    /**
     * 商户渠道进件ID
     */
    private String subMerchantId;

    /**
     * 是否分账
     */
    private String divideFlag;

    /**
     * 分账明细信息
     */
    private String divideDetail;

    /**
     * 收款方ID
     */
    private String receiveUserId;

    @Override
    public String getEncryptJsonStr() {
        return getJsonStr(this, encryptArr);
    }

    @Override
    public String getVerifyJsonStr() {
        return getJsonStr(this, verifyArr);
    }

    @Override
    public String getSubmitJsonStr() {
        return getJsonStr(this, submitArr);
    }
}

