package com.xhpc.payment.domain;

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

/**
 * @Auther: zengyj
 * @Date: 2018/12/13 16:52
 * @Description:
 */
public class AlipayNotifyParam implements Serializable {
    private String appId;
    // 支付宝交易凭证号
    private String tradeNo;
    // 原支付请求的商户订单号
    private String outTradeNo;
    // 商户业务ID，主要是退款通知中返回退款申请的流水号
    private String outBizNo;
    // 买家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字
    private String buyerId;
    // 买家支付宝账号
    private String buyerLogonId;
    // 卖家支付宝用户号
    private String sellerId;
    // 卖家支付宝账号
    private String sellerEmail;
    // 交易目前所处的状态，见交易状态说明
    private String tradeStatus;
    // 本次交易支付的订单金额
    private BigDecimal totalAmount;
    // 商家在交易中实际收到的款项
    private BigDecimal receiptAmount;
    // 用户在交易中支付的金额
    private BigDecimal buyerPayAmount;
    // 退款通知中，返回总退款金额，单位为元，支持两位小数
    private BigDecimal refundFee;
    // 商品的标题/交易标题/订单标题/订单关键字等
    private String subject;
    // 该订单的备注、描述、明细等。对应请求时的body参数，原样通知回来
    private String body;
    // 该笔交易创建的时间。格式为yyyy-MM-dd HH:mm:ss
    private Date gmtCreate;
    // 该笔交易的买家付款时间。格式为yyyy-MM-dd HH:mm:ss
    private Date gmtPayment;
    // 该笔交易的退款时间。格式为yyyy-MM-dd HH:mm:ss.S
    private Date gmtRefund;
    // 该笔交易结束时间。格式为yyyy-MM-dd HH:mm:ss
    private Date gmtClose;
    // 支付成功的各个渠道金额信息,array
    private String fundBillList;
    // 公共回传参数，如果请求时传递了该参数，则返回给商户时会在异步通知时将该参数原样返回。
    private String passbackParams;

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getTradeNo() {
        return tradeNo;
    }

    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

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

    public String getOutBizNo() {
        return outBizNo;
    }

    public void setOutBizNo(String outBizNo) {
        this.outBizNo = outBizNo;
    }

    public String getBuyerId() {
        return buyerId;
    }

    public void setBuyerId(String buyerId) {
        this.buyerId = buyerId;
    }

    public String getBuyerLogonId() {
        return buyerLogonId;
    }

    public void setBuyerLogonId(String buyerLogonId) {
        this.buyerLogonId = buyerLogonId;
    }

    public String getSellerId() {
        return sellerId;
    }

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

    public String getSellerEmail() {
        return sellerEmail;
    }

    public void setSellerEmail(String sellerEmail) {
        this.sellerEmail = sellerEmail;
    }

    public String getTradeStatus() {
        return tradeStatus;
    }

    public void setTradeStatus(String tradeStatus) {
        this.tradeStatus = tradeStatus;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

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

    public BigDecimal getReceiptAmount() {
        return receiptAmount;
    }

    public void setReceiptAmount(BigDecimal receiptAmount) {
        this.receiptAmount = receiptAmount;
    }

    public BigDecimal getBuyerPayAmount() {
        return buyerPayAmount;
    }

    public void setBuyerPayAmount(BigDecimal buyerPayAmount) {
        this.buyerPayAmount = buyerPayAmount;
    }

    public BigDecimal getRefundFee() {
        return refundFee;
    }

    public void setRefundFee(BigDecimal refundFee) {
        this.refundFee = refundFee;
    }

    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 Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtPayment() {
        return gmtPayment;
    }

    public void setGmtPayment(Date gmtPayment) {
        this.gmtPayment = gmtPayment;
    }

    public Date getGmtRefund() {
        return gmtRefund;
    }

    public void setGmtRefund(Date gmtRefund) {
        this.gmtRefund = gmtRefund;
    }

    public Date getGmtClose() {
        return gmtClose;
    }

    public void setGmtClose(Date gmtClose) {
        this.gmtClose = gmtClose;
    }

    public String getFundBillList() {
        return fundBillList;
    }

    public void setFundBillList(String fundBillList) {
        this.fundBillList = fundBillList;
    }

    public String getPassbackParams() {
        return passbackParams;
    }

    public void setPassbackParams(String passbackParams) {
        this.passbackParams = passbackParams;
    }

    @Override
    public String toString() {
        return "AlipayNotifyParam{" +
                "appId='" + appId + '\'' +
                ", tradeNo='" + tradeNo + '\'' +
                ", outTradeNo='" + outTradeNo + '\'' +
                ", outBizNo='" + outBizNo + '\'' +
                ", buyerId='" + buyerId + '\'' +
                ", buyerLogonId='" + buyerLogonId + '\'' +
                ", sellerId='" + sellerId + '\'' +
                ", sellerEmail='" + sellerEmail + '\'' +
                ", tradeStatus='" + tradeStatus + '\'' +
                ", totalAmount=" + totalAmount +
                ", receiptAmount=" + receiptAmount +
                ", buyerPayAmount=" + buyerPayAmount +
                ", refundFee=" + refundFee +
                ", subject='" + subject + '\'' +
                ", body='" + body + '\'' +
                ", gmtCreate=" + gmtCreate +
                ", gmtPayment=" + gmtPayment +
                ", gmtRefund=" + gmtRefund +
                ", gmtClose=" + gmtClose +
                ", fundBillList='" + fundBillList + '\'' +
                ", passbackParams='" + passbackParams + '\'' +
                '}';
    }
}
