字节笔记本

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,
}

项目链接

许可证

Apache License, Version 2.0

分享: