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 }