字节笔记本

2026年2月22日

PowerWechatTutorial:Go 语言微信开发完整示例教程

PowerWechatTutorial 是一个基于 Go 语言的开源项目,由 ArtisanCloud 团队开发维护。该项目提供了 PowerWeChat SDK 的完整使用示例,涵盖了微信支付、小程序、企业微信、公众号等所有 API 的调试代码,帮助开发者快速上手 Golang 微信开发。截至目前,该项目在 GitHub 上已获得 100+ stars。

项目简介

PowerWechatTutorial 是 PowerWeChat SDK 的官方示例教程项目,旨在帮助开发者:

  • 快速理解 PowerWeChat SDK 的架构设计
  • 掌握微信支付、小程序、企业微信等模块的 API 调用方式
  • 通过实际代码示例学习微信生态开发

项目采用模块化设计,每个微信平台的接口都独立封装,便于开发者按需学习和使用。

核心特性

  • 完整覆盖:涵盖微信支付、小程序、企业微信、公众号、开放平台等全部 API
  • 即开即用:提供完整的配置文件模板和启动代码,下载即可运行
  • 调试友好:内置 Insomnia 配置文件,支持 API 接口快速调试
  • 文档完善:每个模块都有详细的官方文档链接和配置说明
  • 生产就绪:代码经过实际项目验证,可直接用于生产环境

技术栈

  • Go (99.2%) - 主要开发语言
  • Gin - Web 框架,用于提供 HTTP API 服务
  • Redis - 缓存存储,用于 Token 等数据缓存
  • Swagger - API 文档自动生成

安装指南

前置要求

  • Go >= 1.18
  • Redis 服务(用于缓存)
  • 微信开发者账号(用于获取 AppID 等配置)

安装步骤

bash
# 克隆项目
git clone https://github.com/ArtisanCloud/PowerWechatTutorial.git
cd PowerWechatTutorial

# 安装依赖
go mod download

# 复制配置文件
cp config-example.yml config.yaml

# 编辑配置文件,填入你的微信配置
vim config.yaml

# 启动服务
go run main.go

服务启动后,访问 http://localhost:8888 会返回 Hello, PowerWechat,表示运行成功。

项目结构

text
PowerwechatTutorial/
├── config/           # 配置文件处理
├── controllers/      # HTTP 控制器
├── docs/            # 文档
├── resource/        # 静态资源
├── routes/          # 路由定义
├── services/        # 业务逻辑服务
├── templates/       # 模板文件
├── config-example.yml  # 配置示例
├── go.mod           # Go 模块定义
├── go.sum           # 依赖校验
├── Insomnia.json    # Insomnia 调试配置
└── main.go          # 入口文件

配置说明

项目使用 YAML 配置文件,主要包含以下模块:

微信支付配置

yaml
payment:
  appid: xxxxx              # 公众号/小程序/企业微信的 appid
  mchid: 100000             # 商户号
  certpath: certs/apiclient_cert.pem   # 证书路径
  keypath: certs/apiclient_key.pem     # 证书私钥路径
  serialno: xxxxx           # 证书序列号
  key: xxxxx                # API 密钥
  mchapiv3key: xxxxx        # APIv3 密钥
  notifyurl: https://example.com/notify  # 支付回调地址
  redisaddr: localhost:6379 # Redis 地址

小程序配置

yaml
miniprogram:
  appid: xxxxx
  secret: xxxxx
  redisaddr: localhost:6379
  messagetoken: xxxxx       # 消息推送 Token
  messageaeskey: xxxxx      # 消息加密密钥

企业微信配置

yaml
wecom:
  corpid: xxxxx             # 企业 ID
  agent_id: 1000000         # 应用 ID
  secret: xxxxx             # 应用密钥
  messagetoken: xxxxx       # 消息 Token
  messageaeskey: xxxxx      # 消息加密密钥
  messagecallback: https://example.com/message/callback
  oauthcallback: https://example.com/oauth/callback

公众号配置

yaml
offiaccount:
  appid: xxxxx
  appsecret: xxxxx
  redisaddr: localhost:6379
  messagetoken: xxxxx
  messageaeskey: xxxxx

使用示例

初始化服务

go
package main

import (
    "github.com/gin-gonic/gin"
    "log"
    "power-wechat-tutorial/config"
    "power-wechat-tutorial/routes"
    "power-wechat-tutorial/services"
)

func main() {
    conf := config.Get()
    var err error

    // 初始化微信支付
    services.PaymentApp, err = services.NewWXPaymentApp(conf)
    if err != nil {
        panic(err)
    }

    // 初始化小程序
    services.MiniProgramApp, err = services.NewMiniMiniProgramService(conf)
    if err != nil {
        panic(err)
    }

    // 初始化公众号
    services.OfficialAccountApp, err = services.NewOfficialAccountAppService(conf)
    if err != nil {
        panic(err)
    }

    // 初始化企业微信
    services.WeComApp, err = services.NewWeComService(conf)
    if err != nil {
        panic(err)
    }

    // 初始化路由
    r := gin.Default()
    routes.InitializeRoutes(r)

    // 启动服务
    log.Fatalln(r.Run(":8888"))
}

使用 Insomnia 调试

项目提供了 Insomnia.json 配置文件,导入后即可快速调试所有 API 接口:

  1. 下载并安装 Insomnia
  2. 导入 Insomnia.json 配置文件
  3. 修改环境变量中的 base_url 和各类微信配置
  4. 开始调试接口

API 文档

项目集成了 Swagger,启动服务后访问 http://localhost:8888/swagger/index.html 即可查看完整的 API 文档。

相关资源

贡献与支持

分享: