// 组合参数

params := []string{
    fmt.Sprintf("pid=%d", pid),
    fmt.Sprintf("trade_no=%s", order.TradeNo),
    fmt.Sprintf("out_trade_no=%s", order.OutTradeNo),
    fmt.Sprintf("type=%s", Type),
    fmt.Sprintf("name=%s", "product"),
    fmt.Sprintf("money=%.2f", order.Money),
    fmt.Sprintf("trade_status=%s", status),
}
// 排序 ,将发送或接收到的所有参数按照参数名ASCII码从小到大排序(a-z)
sort.Strings(params)
//将排序后的参数拼接成URL键值对的格式
signatureString := strings.Join(params, "&")
// 再将拼接好的字符串与商户密钥KEY进行MD5加密
signature := md5.Sum([]byte(signatureString + key))
// 将字节数组转换成十六进制字符串表示的字符串
signatureStr := hex.EncodeToString(signature[:])
// 或者使用fmt.Println(fmt.Sprintf("%x", signature)) 转换为十六进制字符串
每日更新-免费小火箭账号
不要错过任何机会,探索最新的应用和游戏,就在我们的平台。
立即访问
最后修改:2025 年 01 月 07 日
如果觉得我的文章对你有用,请随意赞赏