30 lines
601 B
Go
30 lines
601 B
Go
|
package common
|
|||
|
|
|||
|
import (
|
|||
|
"fmt"
|
|||
|
"sort"
|
|||
|
"strings"
|
|||
|
)
|
|||
|
|
|||
|
func ZltxSign(postData map[string]interface{}, secret string) string {
|
|||
|
// 第一步:把key升序
|
|||
|
keys := make([]string, 0, len(postData))
|
|||
|
for key := range postData {
|
|||
|
keys = append(keys, key)
|
|||
|
}
|
|||
|
sort.Strings(keys)
|
|||
|
|
|||
|
// 第二步:生成签名
|
|||
|
// 拼接用于生成签名的原始字符串
|
|||
|
rawStr := ""
|
|||
|
for _, key := range keys {
|
|||
|
value := fmt.Sprintf("%v", postData[key])
|
|||
|
if rawStr != "" {
|
|||
|
rawStr += "&"
|
|||
|
}
|
|||
|
rawStr += fmt.Sprintf("%s=%s", key, value)
|
|||
|
}
|
|||
|
rawStr += "&key=" + secret
|
|||
|
return strings.ToUpper(GetMD5Hash(rawStr))
|
|||
|
}
|