type WXPrams struct {
m map[string]interface{} // 参数
sign string // 签名
}
func (p *WXPrams) InitSign() {
var keys []string
for k, _ := range p.m {
keys = append(keys, k)
}
sort.Strings(keys)
builder := strings.Builder{}
for _, v := range keys {
builder.WriteString(v)
builder.WriteString("=")
builder.WriteString(fmt.Sprint(p.m[v]))
builder.WriteString("&")
}
builder.WriteString("key=" + apiKey)
p.sign = strings.ToUpper(lib.Md5(builder.String()))
}
func (p *WXPrams) ToPram() string {
p.InitSign()
builder := strings.Builder{}
builder.WriteString("<xml>")
for k, v := range p.m {
builder.WriteString("<" + k + ">")
builder.WriteString(fmt.Sprint(v))
builder.WriteString("</" + k + ">")
}
builder.WriteString("<sign>")
builder.WriteString(fmt.Sprint(p.sign))
builder.WriteString("</sign>")
builder.WriteString("</xml>")
return builder.String()
}
微信golang签名算法
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- SDK下载 这里是微信官方的SDK下载和接入流程文档 手动集成的话需要添加依赖库 将SDK文件中包含的 libWe...