74 lines
1.6 KiB
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
|
|
}
|