97 lines
4.6 KiB
Go
97 lines
4.6 KiB
Go
package request
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"git.echol.cn/loser/lckt/model/common/request"
|
|
)
|
|
|
|
// PayConfigSearch 支付配置搜索请求
|
|
type PayConfigSearch struct {
|
|
request.PageInfo
|
|
Name string `json:"name" form:"name"` // 支付名称
|
|
Code string `json:"code" form:"code"` // 支付编码
|
|
Type string `json:"type" form:"type"` // 支付类型
|
|
Enable *bool `json:"enable" form:"enable"` // 是否启用
|
|
}
|
|
|
|
// PayConfigCreate 创建支付配置请求
|
|
type PayConfigCreate struct {
|
|
Name string `json:"name" binding:"required"` // 支付名称
|
|
Code string `json:"code" binding:"required"` // 支付编码
|
|
Type string `json:"type" binding:"required"` // 支付类型: wechat/shenqi
|
|
Enable bool `json:"enable"` // 是否启用
|
|
EnabledModes []string `json:"enabledModes"` // 启用的支付模式,如 ["h5","jsapi"] 或 ["alipay","wxpay"]
|
|
Sort int `json:"sort"` // 排序
|
|
Remark string `json:"remark"` // 备注
|
|
|
|
// ========== 微信支付配置 ==========
|
|
WechatAppID string `json:"wechatAppId"` // 微信AppID
|
|
WechatMchID string `json:"wechatMchId"` // 微信商户号
|
|
WechatMchApiV3Key string `json:"wechatMchApiV3Key"` // 微信API V3密钥
|
|
WechatPrivateKey string `json:"wechatPrivateKey"` // 微信商户私钥
|
|
WechatSerialNo string `json:"wechatSerialNo"` // 微信证书序列号
|
|
WechatNotifyURL string `json:"wechatNotifyUrl"` // 微信回调地址
|
|
|
|
// ========== 神奇支付配置 ==========
|
|
ShenqiPID int `json:"shenqiPid"` // 神奇支付商户ID
|
|
ShenqiPrivateKey string `json:"shenqiPrivateKey"` // 神奇支付商户私钥
|
|
ShenqiPlatformPubKey string `json:"shenqiPlatformPubKey"` // 神奇支付平台公钥
|
|
ShenqiNotifyURL string `json:"shenqiNotifyUrl"` // 神奇支付回调地址
|
|
ShenqiReturnURL string `json:"shenqiReturnUrl"` // 神奇支付同步跳转地址
|
|
ShenqiBaseURL string `json:"shenqiBaseUrl"` // 神奇支付API地址
|
|
}
|
|
|
|
// PayConfigUpdate 更新支付配置请求
|
|
type PayConfigUpdate struct {
|
|
ID uint `json:"id" binding:"required"` // ID
|
|
Name string `json:"name"` // 支付名称
|
|
Code string `json:"code"` // 支付编码
|
|
Type string `json:"type"` // 支付类型
|
|
Enable *bool `json:"enable"` // 是否启用
|
|
EnabledModes *[]string `json:"enabledModes"` // 启用的支付模式(使用指针来区分不传和传空数组)
|
|
Sort *int `json:"sort"` // 排序
|
|
Remark string `json:"remark"` // 备注
|
|
|
|
// ========== 微信支付配置 ==========
|
|
WechatAppID *string `json:"wechatAppId"` // 微信AppID
|
|
WechatMchID *string `json:"wechatMchId"` // 微信商户号
|
|
WechatMchApiV3Key *string `json:"wechatMchApiV3Key"` // 微信API V3密钥
|
|
WechatPrivateKey *string `json:"wechatPrivateKey"` // 微信商户私钥
|
|
WechatSerialNo *string `json:"wechatSerialNo"` // 微信证书序列号
|
|
WechatNotifyURL *string `json:"wechatNotifyUrl"` // 微信回调地址
|
|
|
|
// ========== 神奇支付配置 ==========
|
|
ShenqiPID *int `json:"shenqiPid"` // 神奇支付商户ID
|
|
ShenqiPrivateKey *string `json:"shenqiPrivateKey"` // 神奇支付商户私钥
|
|
ShenqiPlatformPubKey *string `json:"shenqiPlatformPubKey"` // 神奇支付平台公钥
|
|
ShenqiNotifyURL *string `json:"shenqiNotifyUrl"` // 神奇支付回调地址
|
|
ShenqiReturnURL *string `json:"shenqiReturnUrl"` // 神奇支付同步跳转地址
|
|
ShenqiBaseURL *string `json:"shenqiBaseUrl"` // 神奇支付API地址
|
|
}
|
|
|
|
// PayConfigToggle 切换支付状态请求
|
|
type PayConfigToggle struct {
|
|
ID uint `json:"id" binding:"required"` // ID
|
|
Enable bool `json:"enable"` // 是否启用
|
|
}
|
|
|
|
// Validate 验证创建请求
|
|
func (req *PayConfigCreate) Validate() error {
|
|
switch req.Type {
|
|
case "wechat":
|
|
if req.WechatAppID == "" || req.WechatMchID == "" || req.WechatMchApiV3Key == "" ||
|
|
req.WechatPrivateKey == "" || req.WechatSerialNo == "" || req.WechatNotifyURL == "" {
|
|
return fmt.Errorf("微信支付配置不完整")
|
|
}
|
|
case "shenqi":
|
|
if req.ShenqiPID == 0 || req.ShenqiPrivateKey == "" || req.ShenqiPlatformPubKey == "" ||
|
|
req.ShenqiNotifyURL == "" || req.ShenqiReturnURL == "" {
|
|
return fmt.Errorf("神奇支付配置不完整")
|
|
}
|
|
default:
|
|
return fmt.Errorf("不支持的支付类型: %s", req.Type)
|
|
}
|
|
return nil
|
|
}
|