代码拉取完成,页面将自动刷新
同步操作将从 haming123/wxapp4go 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
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 ""
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。