2025-03-07 16:57:28 +08:00

49 lines
1.1 KiB
Go

package superKangaroo
import (
"bytes"
"case-api/config"
"case-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
}