49 lines
909 B
Go
49 lines
909 B
Go
package models
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"encoding/json"
|
|
"github.com/beego/beego/v2/server/web"
|
|
"merchant/utils"
|
|
"time"
|
|
)
|
|
|
|
type OrderParams struct {
|
|
PayKey string `json:"payKey"` // 支付明文秘钥
|
|
GeneratedTime time.Time `json:"generatedTime"` // 过期时间
|
|
Duration int `json:"duration"` // 存续时间(小时)
|
|
}
|
|
|
|
func (p *OrderParams) Encrypt() string {
|
|
prepareData := p.String()
|
|
|
|
if prepareData == "" {
|
|
return prepareData
|
|
}
|
|
|
|
// 加密密码数据
|
|
key, err := web.AppConfig.String("secret::key")
|
|
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
|
|
iv, err := web.AppConfig.String("secret::iv")
|
|
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
|
|
result, _ := utils.AesCBCEncrypt([]byte(prepareData), []byte(key), []byte(iv))
|
|
return hex.EncodeToString(result)
|
|
}
|
|
|
|
func (p *OrderParams) String() string {
|
|
r, err := json.Marshal(p)
|
|
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
return string(r)
|
|
}
|