2023-07-26 03:06:05 +00:00
|
|
|
package pay
|
|
|
|
|
|
|
|
import "fusenapi/constants"
|
|
|
|
|
|
|
|
type Config struct {
|
|
|
|
// stripe支付
|
|
|
|
Stripe Stripe
|
|
|
|
}
|
|
|
|
|
|
|
|
// NewPayDriver 实例化方法
|
|
|
|
func NewPayDriver(PayMethod int64, config *Config) Pay {
|
|
|
|
switch PayMethod {
|
|
|
|
case int64(constants.PAYMETHOD_STRIPE):
|
|
|
|
return &Stripe{Key: config.Stripe.Key}
|
|
|
|
default:
|
|
|
|
return &Stripe{Key: config.Stripe.Key}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// Pay 支付集成接口
|
|
|
|
type Pay interface {
|
|
|
|
GeneratePrepayment(req *GeneratePrepaymentReq) (res *GeneratePrepaymentRes, err error)
|
|
|
|
}
|
|
|
|
|
|
|
|
type GeneratePrepaymentReq struct {
|
2023-07-28 03:15:42 +00:00
|
|
|
OrderSn string `json:"order_sn"` // 订单编号
|
2023-07-26 03:06:05 +00:00
|
|
|
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 {
|
2023-07-28 03:15:42 +00:00
|
|
|
URL string `json:"url"` // 支付重定向地址
|
|
|
|
TradeNo string `json:"trade_no"` //交易ID
|
|
|
|
ClientSecret string `json:"clientSecret"` //交易密钥
|
|
|
|
SessionId string `json:"session_id"` //SessionId
|
2023-07-26 03:06:05 +00:00
|
|
|
}
|