package pay import "fusenapi/constants" type Config struct { // stripe支付 Stripe Stripe `json:"stripe"` } // NewPayDriver 实例化方法 func NewPayDriver(PayMethod int64, config *Config) Pay { switch PayMethod { case int64(constants.PAYMETHOD_STRIPE): return &Stripe{Key: config.Stripe.Key, PayType: config.Stripe.PayType} default: return &Stripe{Key: config.Stripe.Key, PayType: config.Stripe.PayType} } } // Pay 支付集成接口 type Pay interface { // 支付预处理 GeneratePrepayment(req *GeneratePrepaymentReq) (res *GeneratePrepaymentRes, err error) // 支付退款申请 PayRefund(req *PayRefundReq) (res *PayRefundRes, err error) } type GeneratePrepaymentReq struct { Metadata map[string]string `json:"metadata"` // 元数据 Amount int64 `json:"amount"` // 支付金额 Currency string `json:"currency"` // 支付货币 ProductName string `json:"product_name"` // 商品名称 ProductDescription string `json:"product_description"` // 商品描述 ProductImages []*string `json:"product_imageso"` // 商品照片 Quantity int64 `json:"quantity"` //数量 SuccessURL string `json:"success_url"` // 支付成功回调 CancelURL string `json:"cancel_url"` // 支付取消回调 } type GeneratePrepaymentRes struct { URL string `json:"url"` // 支付重定向地址 TradeNo string `json:"trade_no"` //交易ID ClientSecret string `json:"clientSecret"` //交易密钥 SessionId string `json:"session_id"` //SessionId } type PayRefundReq struct { TradeNo string `json:"trade_no"` // 交易编号 } type PayRefundRes struct { }