diff --git a/plugins/wechat_redpack_v2/internal/transform.go b/plugins/wechat_redpack_v2/internal/transform.go index 6000614..8ba2a88 100644 --- a/plugins/wechat_redpack_v2/internal/transform.go +++ b/plugins/wechat_redpack_v2/internal/transform.go @@ -16,6 +16,10 @@ func transConfig(config []byte) (*Wechat, error) { return nil, proto.ErrorConfigFail(err.Error()) } + if err := c.Validate(); err != nil { + return nil, proto.ErrorConfigFail(err.Error()) + } + return &c, nil } diff --git a/plugins/wechat_redpack_v2/internal/wx.go b/plugins/wechat_redpack_v2/internal/wx.go index 529de7b..1dfe00b 100644 --- a/plugins/wechat_redpack_v2/internal/wx.go +++ b/plugins/wechat_redpack_v2/internal/wx.go @@ -2,6 +2,8 @@ package internal import ( "fmt" + "gitea.cdlsxd.cn/sdk/plugin/proto" + "github.com/go-playground/validator/v10" "os" "plugins/utils/helper" "plugins/wechat_redpack_v2/internal/wechat/srv/transfer" @@ -24,10 +26,20 @@ func init() { } type Wechat struct { - MchID string `json:"mch_id"` - MchCertificateSerialNumber string `json:"mch_certificate_serial_number"` - WechatPayPublicKeyID string `json:"wechat_pay_public_key_id"` - MchApiV3Key string `json:"mch_api_v3_key"` + MchID string `json:"mch_id" validate:"required"` + MchCertificateSerialNumber string `json:"mch_certificate_serial_number" validate:"required"` + WechatPayPublicKeyID string `json:"wechat_pay_public_key_id" validate:"required"` + MchApiV3Key string `json:"mch_api_v3_key" validate:"required"` +} + +func (c *Wechat) Validate() error { + err := validator.New().Struct(c) + if err != nil { + for _, err = range err.(validator.ValidationErrors) { + return proto.ErrorConfigFail("配置有误:" + err.Error()) + } + } + return nil } func Client(wx *Wechat) (*transfer.Transfer, error) {