49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package superKangaroo
|
|
|
|
import (
|
|
"bytes"
|
|
"case-admin-api/config"
|
|
"case-admin-api/utils"
|
|
"encoding/json"
|
|
"math/rand"
|
|
"time"
|
|
)
|
|
|
|
// GenSignature 生成签名信息
|
|
func GenSignature(body, nonce, curTime string) (string, error) {
|
|
sing := utils.GenerateSHA1(config.C.SuperKangaroo.SecretKey, nonce, curTime, body)
|
|
return sing, nil
|
|
}
|
|
|
|
// GenerateRandom6Digit 生成一个随机的6位数
|
|
func generateRandom6Digit() int {
|
|
// 设置随机种子
|
|
rand.Seed(time.Now().UnixNano())
|
|
|
|
// 生成6位数范围 [100000, 999999]
|
|
return rand.Intn(900000) + 100000
|
|
}
|
|
|
|
// StructToJSONString 将结构体转换为 JSON 字符串,并支持 JSON_UNESCAPED_UNICODE
|
|
func StructToJSONString(data interface{}) (string, error) {
|
|
// 创建 buffer 以支持定制化的编码
|
|
var buffer bytes.Buffer
|
|
|
|
// 创建一个 JSON 编码器
|
|
encoder := json.NewEncoder(&buffer)
|
|
|
|
// 设置 JSON_UNESCAPED_UNICODE
|
|
encoder.SetEscapeHTML(false)
|
|
|
|
// 执行编码
|
|
if err := encoder.Encode(data); err != nil {
|
|
return "", err
|
|
}
|
|
|
|
// 移除末尾换行符
|
|
jsonString := buffer.String()
|
|
jsonString = jsonString[:len(jsonString)-1]
|
|
|
|
return jsonString, nil
|
|
}
|