▶_MiniApp Toolkit

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 采用模块化设计,每个微信产品(小程序/支付/公众号/企业微信)独立封装:

code
PowerWeChat/src/
├── miniProgram/        # 小程序模块
│   ├── code2Session    # 登录凭证校验
│   ├── decrypt/        # 数据解密
│   └── subscribeMessage/ # 订阅消息
├── payment/            # 微信支付
│   ├── order/          # 统一下单
│   ├── notify/         # 支付回调
│   └── refund/         # 退款
├── officialAccount/    # 公众号
├── workWeChat/         # 企业微信
└── openPlatform/       # 开放平台

开发指南#

快速上手:小程序登录#

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

微信支付:统一下单#

code
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",
    },
})

订阅消息推送#

code
// 发送订阅消息
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"},
    },
})

内容安全检测#

code
// 文本内容安全检测
result, err := mp.ContentSecurity.MsgSecCheck("待检测文本", "openid", 2)
if result.Detail != nil && len(result.Detail) > 0 {
    // 检测到违规内容
}

审核规范#

PowerWeChat 为后端 SDK,不直接参与小程序审核流程。但使用本 SDK 的注意事项:

  • 密钥安全:AppSecret、商户密钥等敏感信息必须通过环境变量或密钥管理服务存储,不可硬编码
  • 接口频率:微信服务端 API 有频率限制,SDK 已内置重试机制,但仍需合理控制调用频率
  • 回调验签:支付回调和消息推送必须验证签名,SDK 提供了 Notify.Handle() 自动验签

开发指南:常见陷阱#

  1. 证书配置:微信支付需要 APIv3 证书,确保 SerialNoPrivateKey 正确配置
  2. OpenID 获取:JSAPI 支付需要用户 OpenID,必须先通过 code2Session 获取
  3. 回调 URL:支付回调 URL 必须是 HTTPS,且在微信商户后台配置
  4. Go 版本:建议使用 Go 1.18+,模块使用 generics 特性
  5. 并发安全:SDK 客户端实例是并发安全的,可全局复用

生态资源#

版本更新#

  • 2026-08-04:持续维护,适配最新微信 API 变更
  • 2026-06:增强微信支付 v3 API 支持,优化回调处理
  • 2025-12:适配鸿蒙生态微信登录(鸿蒙 NEXT 微信小程序)