package com.icloud.server.payutils.dto;

import lombok.Data;
import java.util.Date;
import java.util.Map;

/**
 * 统一下单 Request DTO
 *
 * @author
 */
@Data
public class PayOrderUnifiedReqDTO {

    /**
     * 用户 IP
     */
    private String userIp;

    // ========== 商户相关字段 ==========

    /**
     * 商户订单编号
     */
    private String merchantOrderId;
    /**
     * 商品标题
     * 商品标题不能超过 32
     */
    private String subject;
    /**
     * 商品描述信息
     * 商品描述信息长度不能超过128
     */
    private String body;

    /**
     * 支付结果的 notify
     * 回调地址支付结果的 notify 回调地址必须是 URL 格式
     *
     */
    private String notifyUrl;
    /**
     * 支付结果的 return 回调地址
     * "支付结果的 return 回调地址必须是 URL 格式
     */
    private String returnUrl;

    // ========== 订单相关字段 ==========

    /**
     * 支付金额，单位：分
     * 支付金额不能为空
     * 支付金额必须大于零
     */
    private Long amount;

    /**
     * 支付过期时间
     * 支付过期时间不能为空
     */
    private Date expireTime;

    // ========== 拓展参数 ==========
    /**
     * 支付渠道的额外参数
     *
     * 例如说，微信公众号需要传递 openid 参数
     */
    private Map<String, String> channelExtras;

}
