plugins/plugins/alipay_cpn/internal/po/po.go

74 lines
1.6 KiB
Go

package po
import (
"encoding/json"
"fmt"
"github.com/go-playground/validator/v10"
)
type Param struct {
AppId string `json:"app_id" validate:"required"`
Method string `json:"method" validate:"required"`
Format string `json:"format" validate:"required"`
Charset string `json:"charset" validate:"required"`
SignType string `json:"sign_type" validate:"required"`
Timestamp string `json:"timestamp" validate:"required"`
Version string `json:"version" validate:"required"`
BizContent string `json:"biz_content"`
Sign string `json:"sign"`
}
type Req interface {
Validate() error
ToJson() []byte
}
var _ Req = (*OrderReq)(nil)
var _ Req = (*QueryReq)(nil)
var _ Req = (*Notify)(nil)
func (req *OrderReq) Validate() error {
err := validator.New().Struct(req)
if err != nil {
for _, err = range err.(validator.ValidationErrors) {
return fmt.Errorf("参数有误:" + err.Error())
}
}
return nil
}
func (req *OrderReq) ToJson() []byte {
b, _ := json.Marshal(req)
return b
}
func (req *QueryReq) Validate() error {
err := validator.New().Struct(req)
if err != nil {
for _, err = range err.(validator.ValidationErrors) {
return fmt.Errorf("参数有误:" + err.Error())
}
}
return nil
}
func (req *QueryReq) ToJson() []byte {
b, _ := json.Marshal(req)
return b
}
func (req *Notify) Validate() error {
err := validator.New().Struct(req)
if err != nil {
for _, err = range err.(validator.ValidationErrors) {
return fmt.Errorf("参数有误:" + err.Error())
}
}
return nil
}
func (req *Notify) ToJson() []byte {
b, _ := json.Marshal(req)
return b
}