
PowerWeChat
工具Go 语言微信全生态 SDK,支持小程序登录、支付、消息推送、服务端 API 调用,是 Go 后端开发微信小程序服务的核心库
golanggowechatsdkserverbackendpaymentminiprogramloginqrcode
详细文档
PowerWeChat — Go 语言微信全生态 SDK#
PowerWeChat 是一款基于 Go 语言的微信开发 SDK,覆盖微信小程序、微信支付、公众号、企业微信等全生态。截至 2026-08,项目在 GitHub 上获得 1806 stars / 253 forks,MIT 协议开源,持续活跃维护。
资源概述#
在小程序后端开发中,Go 语言因其高并发性能被广泛采用。PowerWeChat 为 Go 开发者提供了一套完整的微信 API 封装,包括小程序登录鉴权、微信支付、订阅消息推送、内容安全检测、小程序码生成等核心能力。
核心能力一览#
| 模块 | 能力 | 关键 API |
|---|---|---|
| 小程序登录 | code2Session / 手机号解密 | MiniProgram.Code2Session() |
| 微信支付 | JSAPI 统一下单 / 回调 / 退款 | Payment.UnifiedOrder() |
| 订阅消息 | 模板消息推送 | SubscribeMessage.Send() |
| 内容安全 | 文本/图片安全检测 | ContentSecurity.MsgSecCheck() |
| 小程序码 | 二维码/小程序码生成 | QRCode.GetWxaCode() |
| 用户信息 | encryptedData 解密 | MiniProgram.Decrypt() |
设计规范#
架构设计#
PowerWeChat 采用模块化设计,每个微信产品(小程序/支付/公众号/企业微信)独立封装:
PowerWeChat/src/
├── miniProgram/ # 小程序模块
│ ├── code2Session # 登录凭证校验
│ ├── decrypt/ # 数据解密
│ └── subscribeMessage/ # 订阅消息
├── payment/ # 微信支付
│ ├── order/ # 统一下单
│ ├── notify/ # 支付回调
│ └── refund/ # 退款
├── officialAccount/ # 公众号
├── workWeChat/ # 企业微信
└── openPlatform/ # 开放平台
开发指南#
快速上手:小程序登录#
package main
import (
"github.com/ArtisanCloud/PowerWeChat/src/miniProgram"
"github.com/ArtisanCloud/PowerWeChat/src/miniProgram/config"
)
func main() {
mp := miniProgram.NewMiniProgram(&config.MiniProgram{
AppID: "your-appid",
AppSecret: "your-appsecret",
})
// code2Session:小程序登录凭证校验
session, err := mp.Code2Session("wx-login-code")
if err != nil {
panic(err)
}
// session.OpenID, session.SessionKey, session.UnionID
}
微信支付:统一下单#
payment := payment.NewPayment(&config.Payment{
MchID: "your-mch-id",
MchApiV3Key: "your-api-v3-key",
SerialNo: "your-cert-serial-no",
PrivateKey: "your-private-key",
})
// JSAPI 统一下单
order, err := payment.Order.UnifiedOrder(&power.Order{
AppID: "your-appid",
OutTradeNo: "ORDER_001",
Description: "商品描述",
NotifyURL: "https://your-domain.com/callback",
Amount: power.Amount{
Total: 100, // 分为单位
Currency: "CNY",
},
Payer: power.Payer{
OpenID: "user-openid",
},
})
订阅消息推送#
// 发送订阅消息
err := mp.SubscribeMessage.Send(&power.SubscribeMessage{
ToUser: "user-openid",
TemplateID: "template-id",
Page: "pages/index/index",
Data: power.SubscribeMessageData{
"thing1": power.Value{Value: "订单已发货"},
"time2": power.Value{Value: "2026-08-14 12:00"},
},
})
内容安全检测#
// 文本内容安全检测
result, err := mp.ContentSecurity.MsgSecCheck("待检测文本", "openid", 2)
if result.Detail != nil && len(result.Detail) > 0 {
// 检测到违规内容
}
审核规范#
PowerWeChat 为后端 SDK,不直接参与小程序审核流程。但使用本 SDK 的注意事项:
- 密钥安全:AppSecret、商户密钥等敏感信息必须通过环境变量或密钥管理服务存储,不可硬编码
- 接口频率:微信服务端 API 有频率限制,SDK 已内置重试机制,但仍需合理控制调用频率
- 回调验签:支付回调和消息推送必须验证签名,SDK 提供了
Notify.Handle()自动验签
开发指南:常见陷阱#
- 证书配置:微信支付需要 APIv3 证书,确保
SerialNo和PrivateKey正确配置 - OpenID 获取:JSAPI 支付需要用户 OpenID,必须先通过
code2Session获取 - 回调 URL:支付回调 URL 必须是 HTTPS,且在微信商户后台配置
- Go 版本:建议使用 Go 1.18+,模块使用 generics 特性
- 并发安全:SDK 客户端实例是并发安全的,可全局复用
生态资源#
- WxJava(Java SDK):binarywang/WxJava — 33018⭐ Java 版微信 SDK,覆盖同等能力
- 微信官方文档:小程序服务端 API
- 微信支付文档:商户开发文档
- Go Module:
go get github.com/ArtisanCloud/PowerWeChat/src
版本更新#
- 2026-08-04:持续维护,适配最新微信 API 变更
- 2026-06:增强微信支付 v3 API 支持,优化回调处理
- 2025-12:适配鸿蒙生态微信登录(鸿蒙 NEXT 微信小程序)