写在前头
- 1. 该教程目标用户是想基于golang语言开发公众号后台,实现自动回复、微信支付、客服等等一些拓展功能;
- 2. 需要会golang、gin、web服务的部署等基础知识。
- 一、打开公众号基本配置界面
2.3. 依次点击【设置与开发】、【基本配置】;
- 4. 【URL】:填写web服务配置的URL;
- 5. 【Token】:随便写,但代码中会用到;
- 6. 【EncodingAESKey】:随机生成即可,但要记住。
二、golang代码编写
package routers import ( "blog_server_v4/config" "crypto/sha1" "encoding/hex" "fmt" "github.com/gin-gonic/gin" "net/http" "sort" "strings" ) func RouterPartner(router *gin.Engine) (interface{}, error) { routerDimension := router.Group("/xxx/xxxx") { routerDimension.GET("/xxx/xxxx/v1", func(c *gin.Context) { // 填写开发者填写的token token := config.AppConfig.Partner.Wx.Token // 接收请求参数 signature := c.Query("signature") timestamp := c.Query("timestamp") nonce := c.Query("nonce") echostr := c.Query("echostr") // 校验signature if WXCheckSignature(signature, timestamp, nonce, token) { fmt.Println("微信公众号接入校验成功!") c.String(http.StatusOK, echostr) } else { fmt.Println("微信公众号接入校验失败!") c.String(http.StatusOK, "校验失败") } return }) } return routerDimension, nil } func WXCheckSignature(signature, timestamp, nonce, token string) bool { params := []string{timestamp, nonce, token} sort.Strings(params) // 拼接参数字符串 paramStr := strings.Join(params, "") // 进行sha1加密 sha1Str := sha1.Sum([]byte(paramStr)) // 与signature进行比较 signatureStr := hex.EncodeToString(sha1Str[:]) return signatureStr == signature }
这是基于golang语言的gin web框架实现的微信校验核心代码,又不了解的,可加v:multi_z
沟通。
三、校验
[图片上传失败...(image-44879-1699525151047)]
可以看到,“提交成功”两个字,说明已经配置好了。
[图片上传失败...(image-f782f8-1699525151047)]
点击【启用】。
[图片上传失败...(image-34852d-1699525151047)]
可以看到,现在已经是“已启用”的状态了。