package com.cyksj.model.dto;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * h5发起支付 必要的参数
 *
 * @author valor
 * @date 2019-01-07 17:10
 */
@Getter
@Setter
public abstract class H5JsPayParams implements Serializable {

    /**
     * 公众号唯一标识
     */
    private String appId;

    /**
     * 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
     */
    private Long timestamp;

    /**
     * 支付签名随机串，不长于 32 位
     */
    private String nonceStr;

    /**
     * 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
     */
    private String prepayId;

    /**
     * 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
     */
    private String signType;

    /**
     * 支付签名
     */
    private String paySign;

    private String orderNo;

    /**
     * 二维码链接
     */
    private String codeUrl;

    public String println(String shopKey) {
        return "appId=" + this.appId +
                "&nonceStr=" + this.nonceStr +
                "&package=" + this.prepayId +
                "&signType=" + this.signType +
                "&timeStamp=" + this.timestamp +
                "&key=" + shopKey;
    }
}
