2023-07-06 11:01:47 +08:00

37 lines
717 B
Go

package ca
import (
"crypto/hmac"
"crypto/sha1"
"encoding/hex"
"hospital-admin-api/config"
"sort"
"strings"
)
// GenerateSignature 生成签名
func GenerateSignature(paramMap map[string]string) string {
keys := make([]string, 0, len(paramMap))
for k := range paramMap {
if k == "pdfFile" {
continue
}
keys = append(keys, k)
}
sort.Strings(keys)
var toSign string
for _, k := range keys {
v := paramMap[k]
toSign += v + "&"
}
toSign = strings.TrimSuffix(toSign, "&")
// Step 3: Calculate HMAC-SHA1 and convert to hex format
h := hmac.New(sha1.New, []byte(config.C.CaOnline.CaOnlineAppSecret))
h.Write([]byte(toSign))
signature := hex.EncodeToString(h.Sum(nil))
return signature
}