133 lines
5.5 KiB
Go
133 lines
5.5 KiB
Go
package dto
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
)
|
|
|
|
type PaymentConfigRequest struct {
|
|
Provider string `json:"provider"`
|
|
Enabled bool `json:"enabled"`
|
|
Config json.RawMessage `json:"config"`
|
|
}
|
|
|
|
// PaymentConfigResponse is the transport representation returned by the
|
|
// payment configuration endpoint. Values are already masked by the usecase's
|
|
// repository boundary.
|
|
type PaymentConfigResponse struct {
|
|
Provider string `json:"provider"`
|
|
Enabled bool `json:"enabled"`
|
|
Config json.RawMessage `json:"config"`
|
|
}
|
|
|
|
type PaymentOrderListRequest struct {
|
|
Page int `form:"page"`
|
|
PageSize int `form:"pageSize"`
|
|
Provider string `form:"provider"`
|
|
TradeNo string `form:"tradeNo"`
|
|
BusinessType string `form:"businessType"`
|
|
BusinessID string `form:"businessId"`
|
|
PaymentStatus string `form:"paymentStatus"`
|
|
RefundStatus string `form:"refundStatus"`
|
|
}
|
|
|
|
type PaymentRequest struct {
|
|
Provider string `json:"provider"`
|
|
TradeNo string `json:"tradeNo"`
|
|
Subject string `json:"subject"`
|
|
Amount int64 `json:"amount"`
|
|
OriginalAmount int64 `json:"originalAmount"`
|
|
Currency string `json:"currency"`
|
|
NotifyURL string `json:"notifyUrl"`
|
|
ReturnURL string `json:"returnUrl"`
|
|
Extra map[string]any `json:"extra"`
|
|
ClientIP string `json:"-"`
|
|
BusinessType string `json:"businessType"`
|
|
BusinessID string `json:"businessId"`
|
|
PaymentMode string `json:"paymentMode"`
|
|
}
|
|
type PaymentQueryRequest struct {
|
|
Provider string `json:"provider"`
|
|
TradeNo string `json:"tradeNo"`
|
|
}
|
|
type PaymentRefundRequest struct {
|
|
Provider string `json:"provider"`
|
|
TradeNo string `json:"tradeNo"`
|
|
Amount int64 `json:"amount"`
|
|
}
|
|
|
|
// PaymentCallbackRequest is populated by the HTTP transport and converted to
|
|
// the biz callback object inside service.
|
|
type PaymentCallbackRequest struct {
|
|
Provider string
|
|
Headers map[string]string
|
|
Body []byte
|
|
Query map[string]string
|
|
}
|
|
|
|
type PaymentCallbackAck struct {
|
|
StatusCode int
|
|
ContentType string
|
|
Body []byte
|
|
}
|
|
|
|
type PaymentResultResponse struct {
|
|
Provider string `json:"provider"`
|
|
Status string `json:"status"`
|
|
TradeNo string `json:"tradeNo"`
|
|
ProviderTradeNo string `json:"providerTradeNo"`
|
|
Amount int64 `json:"amount"`
|
|
PayerPaidAmount int64 `json:"payerPaidAmount,omitempty"`
|
|
CashPaidAmount int64 `json:"cashPaidAmount,omitempty"`
|
|
PointPaidAmount int64 `json:"pointPaidAmount,omitempty"`
|
|
DiscountAmount int64 `json:"discountAmount,omitempty"`
|
|
ProviderDiscountAmount int64 `json:"providerDiscountAmount,omitempty"`
|
|
MerchantDiscountAmount int64 `json:"merchantDiscountAmount,omitempty"`
|
|
SettlementAmount int64 `json:"settlementAmount,omitempty"`
|
|
Currency string `json:"currency"`
|
|
PayerCurrency string `json:"payerCurrency,omitempty"`
|
|
AmountBreakdownKnown bool `json:"amountBreakdownKnown"`
|
|
Duplicate bool `json:"duplicate"`
|
|
Payload json.RawMessage `json:"payload"`
|
|
OrderStatus string `json:"orderStatus,omitempty"`
|
|
FulfillmentStatus string `json:"fulfillmentStatus,omitempty"`
|
|
RefundStatus string `json:"refundStatus,omitempty"`
|
|
}
|
|
|
|
type PaymentOrderResponse struct {
|
|
ID uint64 `json:"ID"`
|
|
Provider string `json:"provider"`
|
|
TradeNo string `json:"tradeNo"`
|
|
ProviderTradeNo string `json:"providerTradeNo"`
|
|
BusinessType string `json:"businessType"`
|
|
BusinessID string `json:"businessId"`
|
|
Subject string `json:"subject"`
|
|
PaymentMode string `json:"paymentMode"`
|
|
OriginalAmount int64 `json:"originalAmount"`
|
|
Amount int64 `json:"amount"`
|
|
PaidAmount int64 `json:"paidAmount"`
|
|
PayerPaidAmount int64 `json:"payerPaidAmount"`
|
|
CashPaidAmount int64 `json:"cashPaidAmount"`
|
|
PointPaidAmount int64 `json:"pointPaidAmount"`
|
|
DiscountAmount int64 `json:"discountAmount"`
|
|
ProviderDiscountAmount int64 `json:"providerDiscountAmount"`
|
|
MerchantDiscountAmount int64 `json:"merchantDiscountAmount"`
|
|
SettlementAmount int64 `json:"settlementAmount"`
|
|
Currency string `json:"currency"`
|
|
PayerCurrency string `json:"payerCurrency,omitempty"`
|
|
AmountBreakdownKnown bool `json:"amountBreakdownKnown"`
|
|
PaymentStatus string `json:"paymentStatus"`
|
|
ProviderStatus string `json:"providerStatus"`
|
|
FulfillmentStatus string `json:"fulfillmentStatus"`
|
|
RefundStatus string `json:"refundStatus"`
|
|
RefundedAmount int64 `json:"refundedAmount"`
|
|
RefundRequestedAmount int64 `json:"refundRequestedAmount"`
|
|
RefundNo string `json:"refundNo,omitempty"`
|
|
LastError string `json:"lastError,omitempty"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
PaidAt *time.Time `json:"paidAt,omitempty"`
|
|
FulfilledAt *time.Time `json:"fulfilledAt,omitempty"`
|
|
RefundedAt *time.Time `json:"refundedAt,omitempty"`
|
|
}
|