微信小程序API验证

pull/30/head
taoshihan1991 4 years ago
parent e2bffed69e
commit bac6ac4488

@ -18,6 +18,8 @@ const MysqlConf = Dir + "mysql.json"
const MailConf = Dir + "mail.json"
const LangConf=Dir+"language.json"
const MainConf = Dir + "config.json"
const WeixinToken="taoshihan1"
type Mysql struct{
Server string
Port string

@ -0,0 +1,35 @@
package controller
import (
"crypto/sha1"
"encoding/hex"
"github.com/gin-gonic/gin"
"github.com/taoshihan1991/imaptool/config"
"log"
"sort"
)
func PostCheckWeixinSign(c *gin.Context){
token:=config.WeixinToken
signature:=c.PostForm("signature")
timestamp:=c.PostForm("timestamp")
nonce:=c.PostForm("nonce")
echostr:=c.PostForm("echostr")
//将token、timestamp、nonce三个参数进行字典序排序
var tempArray = []string{token, timestamp, nonce}
sort.Strings(tempArray)
//将三个参数字符串拼接成一个字符串进行sha1加密
var sha1String string = ""
for _, v := range tempArray {
sha1String += v
}
h := sha1.New()
h.Write([]byte(sha1String))
sha1String = hex.EncodeToString(h.Sum([]byte("")))
//获得加密后的字符串可与signature对比
if sha1String == signature {
c.Writer.Write([]byte(echostr))
} else {
log.Println("微信API验证失败")
}
}

@ -52,4 +52,6 @@ func InitApiRouter(engine *gin.Engine){
engine.POST("/ipblack",middleware.JwtApiMiddleware,controller.PostIpblack)
engine.DELETE("/ipblack",middleware.JwtApiMiddleware,controller.DelIpblack)
engine.GET("/ipblacks_all",middleware.JwtApiMiddleware,controller.GetIpblacks)
//微信接口
engine.GET("/micro_program",controller.PostCheckWeixinSign)
}
Loading…
Cancel
Save