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 { PaymentID uint PaymentNo string CorrelationID string Description string Amount int64 ExpireAt time.Time PayerClientIP string 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 CreatePaymentURL(ctx context.Context, request OnlinePaymentRequest) (OnlinePaymentResult, error) Query(ctx context.Context, request OnlinePaymentRequest) (OnlinePaymentQueryResult, error) }