package com.czg.entity.req;


import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NonNull;

/**
 * 公众号/生活号/银联js支付
 *
 * @author ww
 * <p>
 * ● 码牌、台卡、立牌等
 * 用户通过扫描微信/支付宝/云闪付APP静态二维码，输入订单金额进行付款动作。
 * ● 公众号 / 生活号商城
 * 用户通过公众号下单，输入密码完成付款动作。适用于自有公众号主体交易
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CzgJsPayReq extends CzgBaseReq {
    //必填范围
    /**
     * 用户唯一标识 String(30)
     * 微信支付时，传入用户的openId；
     * 支付宝支付和银联支付时，传入用户的userId
     */
    private String userId;
    /**
     * 用户IP
     * 需要传付款用户客户端IP地址
     */
    private String clientIp;
    /**
     * 微信 WECHAT；
     * 支付宝 ALIPAY；
     * 银联云闪付 UNIONPAY
     */
    private String payType;


    //非必填范围
    /**
     * 子商户appid ，微信付款支付的时候 需要上送
     */
    private String subAppid;
    /**
     * 跳转通知地址
     * 支付结果同步跳转通知URL
     */
    private String returnUrl;

    /**
     * 银联js支付成功前端跳转
     */
    private String frontUrl;
    /**
     * 银联js支付失败前端跳转地址
     */
    private String frontFailUrl;

    public CzgJsPayReq(@NonNull String mchOrderNo,
                       @NonNull Long amount, String body,
                       @NonNull String openId, @NonNull String clientIp,
                       String returnUrl, String buyerRemark,@NonNull String extParam) {
        super(mchOrderNo, amount, body, buyerRemark, extParam);
        this.userId = openId;
        this.clientIp = clientIp;
        this.returnUrl = returnUrl;
    }
}

