字
字节笔记本
2026年2月23日
silenceper/wechat:Go 语言微信 SDK 完整指南
本文介绍 silenceper/wechat,一个使用 Go 语言开发的开源微信 SDK。该项目提供了简单、易用的 API 接口,帮助开发者快速集成微信公众号、小程序、微信支付、企业微信等功能。截至目前,该项目在 GitHub 上已获得 5.2k stars,是 Go 语言生态中最受欢迎的微信开发 SDK 之一。
项目简介
silenceper/wechat 是一个功能完善的 Go 语言微信 SDK,支持微信生态的多个重要模块:
- 微信公众号:消息接收/回复、菜单管理、用户管理等
- 微信小程序:登录、数据解密、二维码生成等
- 微信支付:统一下单、订单查询、退款等
- 微信小游戏:登录、好友关系链等
- 开放平台:第三方平台开发
- 企业微信:企业内部应用开发
核心特性
- 模块化设计:各功能模块独立,可按需引入
- 多种缓存支持:支持 Memory、Redis、Memcache 等多种缓存方式存储 access_token
- 完善的文档:提供详细的 API 文档和使用示例
- 持续维护:活跃的社区贡献,定期更新
- 生产可用:已被众多项目验证和使用
安装指南
前置要求
- Go 1.16 或更高版本
安装步骤
bash
go get github.com/silenceper/wechat/v2在代码中导入:
go
import "github.com/silenceper/wechat/v2"快速开始
以下是一个微信公众号处理消息接收以及回复的完整示例:
go
package main
import (
"fmt"
"net/http"
"github.com/silenceper/wechat/v2"
"github.com/silenceper/wechat/v2/cache"
offConfig "github.com/silenceper/wechat/v2/officialaccount/config"
"github.com/silenceper/wechat/v2/officialaccount/message"
)
func main() {
// 使用 memory 保存 access_token,也可选择 redis 或自定义 cache
wc := wechat.NewWechat()
memory := cache.NewMemory()
cfg := &offConfig.Config{
AppID: "your-app-id",
AppSecret: "your-app-secret",
Token: "your-token",
// EncodingAESKey: "your-encoding-aes-key", // 可选,用于消息加密
Cache: memory,
}
officialAccount := wc.GetOfficialAccount(cfg)
http.HandleFunc("/wechat", func(w http.ResponseWriter, r *http.Request) {
// 传入 request 和 responseWriter
server := officialAccount.GetServer(r, w)
// 设置接收消息的处理方法
server.SetMessageHandler(func(msg *message.MixMessage) *message.Reply {
// 回复消息:演示回复用户发送的消息
text := message.NewText(msg.Content)
return &message.Reply{
MsgType: message.MsgTypeText,
MsgData: text,
}
})
// 处理消息接收以及回复
err := server.Serve()
if err != nil {
fmt.Println(err)
return
}
// 发送回复的消息
server.Send()
})
http.ListenAndServe(":8080", nil)
}模块详解
1. 微信公众号 (officialaccount)
提供微信公众号开发所需的全部功能:
- 消息管理(接收、回复、转发)
- 用户管理(获取用户信息、标签管理)
- 素材管理(上传、下载多媒体素材)
- 菜单管理(创建、查询、删除自定义菜单)
- 账号管理(二维码生成、短链接)
2. 小程序 (miniprogram)
支持微信小程序开发:
- 登录鉴权(code2Session)
- 数据解密(加密数据解密)
- 二维码生成(小程序码、小程序二维码)
- 内容安全(文本、图片内容检测)
3. 微信支付 (pay)
集成微信支付功能:
- 统一下单
- 订单查询
- 关闭订单
- 申请退款
- 查询退款
- 下载对账单
4. 企业微信 (work)
支持企业微信开发:
- 成员管理
- 部门管理
- 消息推送
- 审批管理
缓存配置
SDK 支持多种缓存方式存储 access_token,推荐使用 Redis 或 Memcache 在分布式环境中使用:
go
// 使用 Redis 缓存
import "github.com/silenceper/wechat/v2/cache"
redisCache := cache.NewRedis(&cache.RedisOpts{
Host: "127.0.0.1:6379",
Password: "",
Database: 0,
})
cfg := &offConfig.Config{
AppID: "your-app-id",
AppSecret: "your-app-secret",
Token: "your-token",
Cache: redisCache,
}项目链接
- GitHub 仓库:https://github.com/silenceper/wechat
- 官方文档:https://silenceper.com/wechat
- 使用示例:https://github.com/gowechat/example
- API 列表:https://github.com/silenceper/wechat/tree/v2/doc/api
许可证
Apache License, Version 2.0
分享: