package com.fzm.mall.midea.pay.params;

import cn.hutool.core.lang.TypeReference;
import cn.hutool.json.JSONUtil;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Map;

/**
 * @author tangtuo
 * @date 2021/5/24 15:50
 */
@Data
@Accessors(chain = true)
public abstract class BaseParam {


    /**
     * 接口名称
     * 不可为空
     */
    private String service;

    /**
     * 接口版本号 目前取值3.4.
     * 不可为空
     */
    private String version = "3.4.0";

    /**
     * 请求唯一序列号
     * 不可为空
     */
    private String req_seq_no;

    /**
     * 签约商户号，由美的支付生成，由10位数字组成
     * 不可为空
     */
    private String partner;

    /**
     * 营销金额出款商户号
     */
    private String market_acc_partner;

    /**
     * 商户网站使用的编码格式，取值UTF-8
     * 不可为空
     */
    private String input_charset;

    /**
     * 语言类型：
     * <p>
     * ZH-CN：简体中文
     */
    private String language;

    /**
     * 终端类型：
     * ITG：后台
     * 不可为空
     */
    private String terminal_type;

    /**
     * 签名的方式：
     * MD5_RSA_TW：天威证书签名
     * 不可为空
     */
    private String sign_type;

    /**
     * 签名
     * 不可为空
     */
    private String sign;

    /**
     * 支付成功后，美的支付通过此地址通知业务方订单状态，支持多个，英文分号分隔’;’
     * 不可为空
     */
    private String notify_url;

    /**
     * bean转map
     * @param baseParam
     * @return
     */
    public Map<String, String> beanToMap(BaseParam baseParam) {
        return JSONUtil.toBean(JSONUtil.toJsonStr(baseParam), new TypeReference<Map<String, String>>() {
        }, true);

    }


}
