package com.jeequan.jeepay.core.model.params.sandpay;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.jeequan.jeepay.core.annotate.ChannelMchId;
import com.jeequan.jeepay.core.constants.ChannelMchIdTypeEnum;
import com.jeequan.jeepay.core.model.params.NormalMchParams;
import com.jeequan.jeepay.core.utils.StringKit;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

/**
 * 杉德 普通商户参数定义
 *
 * @author xiaoyu
 *
 * @date 2021/12/22 17:15
 */
@Data
public class SandpayNormalMchParams extends NormalMchParams {

    /** 商户ID */
    @ChannelMchId(type = ChannelMchIdTypeEnum.MCH_NO)
    private String mid;

    /** 杉德公钥文件 */
    private String publicCert;

    /** 商户私钥文件 */
    private String privateCert;

    /** 商户私钥密码 **/
    private String privatePassword;

    /** MD5签名key **/
    private String md5Key;

    /** 商户密钥, 手机APK工具 生成的key1 **/
    private String key1;

    @Override
    public String deSenData() {
        SandpayNormalMchParams mchParams = this;

        if (StringUtils.isNotBlank(this.privatePassword)) {
            mchParams.setPrivatePassword(StringKit.str2Star(this.privatePassword, 4, 4, 6));
        }

        if (StringUtils.isNotBlank(this.md5Key)) {
            mchParams.setMd5Key(StringKit.str2Star(this.md5Key, 4, 6, 6));
        }

        return ((JSONObject) JSON.toJSON(mchParams)).toJSONString();
    }

}
