package com.fdkankan.pay.alipay.sdk;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

public class AlipaymentEx implements Serializable {

    private static final long serialVersionUID = 8082279987959002563L;
    // (必填) 商户网站订单系统中唯一订单号，64个字符以内，只能包含字母、数字、下划线，
    private String outTradeNo;
    // (必填) 订单标题，粗略描述用户的支付目的。如“喜士多（浦东店）消费”
    private String subject;
    // 订单描述，可以对交易或商品进行一个详细地描述，比如填写"购买商品2件共15.00元"
    private String body;
    // (必填) 订单总金额，单位为元，不能超过1亿元
    // 如果同时传入了【打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【打折金额】+【不可打折金额】
    private BigDecimal totalAmount;
    // (可选) 订单不可打折金额，可以配合商家平台配置折扣活动，如果酒水不参与打折，则将对应金额填写至此字段
    // 如果该值未传入,但传入了【订单总金额】,【打折金额】,则该值默认为【订单总金额】-【打折金额】
    private BigDecimal undiscountableAmount;
    // 卖家支付宝账号ID，用于支持一个签约账号下支持打款到不同的收款账号，(打款到sellerId对应的支付宝账号)
    // 如果该字段为空，则默认为与支付宝签约的商户的PID，也就是appid对应的PID
    private String sellerId;
    // (必填) 商户门店编号，通过门店号和商家后台可以配置精准到门店的折扣信息，详询支付宝技术支持
    private String storeId;
    // 商户操作员编号，添加此参数可以为商户操作员做销售统计
    private String operatorId;
    // 支付超时，线下扫码交易定义为5分钟
    private String timeoutExpress = "5m";
    // 商品明细列表，需填写购买商品详细信息
    private List<AlipayGoodsDetail> goodsDetailList;

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getUndiscountableAmount() {
        return undiscountableAmount;
    }

    public void setUndiscountableAmount(BigDecimal undiscountableAmount) {
        this.undiscountableAmount = undiscountableAmount;
    }

    public String getSellerId() {
        return sellerId;
    }

    public void setSellerId(String sellerId) {
        this.sellerId = sellerId;
    }

    public String getStoreId() {
        return storeId;
    }

    public void setStoreId(String storeId) {
        this.storeId = storeId;
    }

    public String getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }

    public String getTimeoutExpress() {
        return timeoutExpress;
    }

    public void setTimeoutExpress(String timeoutExpress) {
        this.timeoutExpress = timeoutExpress;
    }

    public List<AlipayGoodsDetail> getGoodsDetailList() {
        return goodsDetailList;
    }

    public void setGoodsDetailList(List<AlipayGoodsDetail> goodsDetailList) {
        this.goodsDetailList = goodsDetailList;
    }
}
