This commit is contained in:
48
internal/application/agentrecharge/online_payment.go
Normal file
48
internal/application/agentrecharge/online_payment.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package agentrecharge
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/break/junhong_cmp_fiber/internal/model"
|
||||
)
|
||||
|
||||
const (
|
||||
// OnlinePaymentStatePending 表示渠道仍在等待付款。
|
||||
OnlinePaymentStatePending = "pending"
|
||||
// OnlinePaymentStatePaid 表示渠道已确认收款。
|
||||
OnlinePaymentStatePaid = "paid"
|
||||
// OnlinePaymentStateClosed 表示渠道订单已明确关闭。
|
||||
OnlinePaymentStateClosed = "closed"
|
||||
// OnlinePaymentStateUnknown 表示渠道状态暂时无法确定。
|
||||
OnlinePaymentStateUnknown = "unknown"
|
||||
)
|
||||
|
||||
// OnlinePaymentRequest 描述扫码预下单所需的最小事实。
|
||||
type OnlinePaymentRequest struct {
|
||||
PaymentNo string
|
||||
Description string
|
||||
Amount int64
|
||||
ExpireAt time.Time
|
||||
Config *model.WechatConfig
|
||||
}
|
||||
|
||||
// OnlinePaymentResult 描述渠道返回的扫码付款内容。
|
||||
type OnlinePaymentResult struct {
|
||||
QRContent string
|
||||
}
|
||||
|
||||
// OnlinePaymentQueryResult 描述统一后的渠道支付状态。
|
||||
type OnlinePaymentQueryResult struct {
|
||||
State string
|
||||
ThirdPartyTradeNo string
|
||||
Amount int64
|
||||
PaidAt *time.Time
|
||||
}
|
||||
|
||||
// OnlinePaymentPort 定义代理扫码充值需要的最小渠道能力。
|
||||
type OnlinePaymentPort interface {
|
||||
Available(config *model.WechatConfig) bool
|
||||
PreCreate(ctx context.Context, request OnlinePaymentRequest) (OnlinePaymentResult, error)
|
||||
Query(ctx context.Context, paymentNo string, config *model.WechatConfig) (OnlinePaymentQueryResult, error)
|
||||
}
|
||||
Reference in New Issue
Block a user