OnlinePaymentResult.java 2.15 KB
package com.diligrp.cashier.trade.domain;

import com.diligrp.cashier.pipeline.type.OutPaymentType;
import com.diligrp.cashier.pipeline.type.PaymentState;

import java.time.LocalDateTime;

/**
 * 在线支付结果 - 用于业务系统支付结果通知
 */
public class OnlinePaymentResult {
    // 交易号
    private final String tradeId;
    // 支付ID
    private final String paymentId;
    // 支付状态
    private final Integer state;
    // 业务系统订单号
    private final String outTradeNo;
    // 实际支付方式
    private final Integer outPayType;
    // 支付人信息
    private final String payerId;
    // 发生时间
    private final LocalDateTime when;
    // 交易描述
    private final String message;

    public static OnlinePaymentResult of(String tradeId, String paymentId, PaymentState state, String outTradeNo,
                                         OutPaymentType outPayType, String payerId, LocalDateTime when, String message) {
        Integer outPayTypeCode = outPayType != null ? outPayType.getCode() : null;
        return new OnlinePaymentResult(tradeId, paymentId, state.getCode(), outTradeNo, outPayTypeCode, payerId, when, message);
    }

    public OnlinePaymentResult(String tradeId, String paymentId, int state, String outTradeNo, Integer outPayType,
                               String payerId, LocalDateTime when, String message) {
        this.tradeId = tradeId;
        this.paymentId = paymentId;
        this.state = state;
        this.outTradeNo = outTradeNo;
        this.outPayType = outPayType;
        this.payerId = payerId;
        this.when = when;
        this.message = message;
    }

    public String getTradeId() {
        return tradeId;
    }

    public String getPaymentId() {
        return paymentId;
    }

    public Integer getState() {
        return state;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public Integer getOutPayType() {
        return outPayType;
    }

    public String getPayerId() {
        return payerId;
    }

    public LocalDateTime getWhen() {
        return when;
    }

    public String getMessage() {
        return message;
    }
}