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签名算法
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- SDK下载 这里是微信官方的SDK下载和接入流程文档 手动集成的话需要添加依赖库 将SDK文件中包含的 libWe...