1 Star 0 Fork 3

jltxseo/wxapp4go

forked from haming123/wxapp4go 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
weixin_check.go 1022 Bytes
一键复制 编辑 原始数据 按行查看 历史
haming 提交于 2022-03-03 13:27 . init
package wxapp
import (
"crypto/sha1"
"encoding/hex"
"fmt"
"io"
"math/rand"
"sort"
"time"
)
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
func GetNonceStr(n int) string {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
b := make([]rune, n)
for i := range b {
b[i] = letters[r.Intn(len(letters))]
}
return string(b)
}
func SignSHA1(signstr string) string {
hasher := sha1.New()
hasher.Write([]byte(signstr))
sign := hex.EncodeToString(hasher.Sum(nil))
return sign
}
type WeixinParam struct {
token string
signature string
timestamp string
nonce string
echostr string
}
func str2sha1(data string)string{
t:=sha1.New()
io.WriteString(t,data)
return fmt.Sprintf("%x",t.Sum(nil))
}
//消息推送接入请求验证
func WeixinCheck(p WeixinParam) string {
tmps:=[]string{p.token, p.timestamp, p.nonce}
sort.Strings(tmps)
tmpStr:=tmps[0]+tmps[1]+tmps[2]
tmp:=str2sha1(tmpStr)
if tmp == p.signature{
return p.echostr
} else {
return ""
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/jltx/wxapp4go.git
git@gitee.com:jltx/wxapp4go.git
jltx
wxapp4go
wxapp4go
master

搜索帮助