package thyyxxk.webserver.entity.ca;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CaSendParams {
    /**
     * 移动安全认证系统分配的应用Id
     */
    private String appId;
    /**
     * 用户标识，用于关联应用系统的用户身份，对应用户注册信息中的uuid
     */
    private String id;
    /**
     * 业务流水号，需要保持唯一性，用于标识每笔业务的关联，签名操作后会将对应的数据回调给应用
     */
    private String bizSn;
    /**
     * 待签名数据，传输前对摘要计算之后的msg做URLEncode编码(UTF-8)。
     * 对有举证意义的数据(原文)做摘要处理，计算公式：
     * msg=new String(Base64.encode(SHA256(原文)))
     * 参考示例代码8.1SHA-256摘要转换
     */
    private String msg;
    /**
     * 是否对待签名数据进行Base64解码，默认为0 0：不解码
     * 1：解码
     */
    private String msgWrapper;

    /**
     * 签名动作描述（URLEncode,utf-8），最大长度512。内容会在APP端展现
     */
    private String desc;

    /**
     * 应用接收签名后数据的回调地址
     * （URLEncode,utf-8），最大长度512。
     * 由应用系统提供接口地址，接口定义参见6.2.1
     */
    private String url;

    /**
     * 数据传递方式，推荐使用redirect。redirect：由服务器传递给应用
     * forward：由APP传递给应用
     */
    private String mode;

    /**
     * 用应用私钥对msg值（URLEncode编码之前，摘要处理之后的数据）进行参数签名，
     * 得到Base64 编码格式签名值后进行URLEncode(UTF-8)传
     * 输。当后台开启鉴权时，此参数必填。
     * 应用私钥由Mkey后台分配，示例代码参考8.2参
     */
    private String sign;

}
