微信SDK

silenceper

配置参数

package wx

// 公众号配置
const (
    AppID          = "wx7fa401xe810n1eb7"
    AppSecret      = "35673237f5676a727b45b22f4ca8e34a"
    EncodingAESKey = ""
)

// 微信支付配置
const (
    MchID     = "1602872469"                       // 商户ID
    Key       = "454dawdahhWWW441D8EXDle454741211" // 商户Key
    NotifyURL = "http://www.test.com/v1/notify"    // 通知回调链接
)

初始化

package wx

import (
    "github.com/silenceper/wechat/v2"
    "github.com/silenceper/wechat/v2/cache"
    "github.com/silenceper/wechat/v2/miniprogram"
    miniConfig "github.com/silenceper/wechat/v2/miniprogram/config"
    "github.com/silenceper/wechat/v2/officialaccount"
    offConfig "github.com/silenceper/wechat/v2/officialaccount/config"
    "github.com/silenceper/wechat/v2/pay"
    payConfig "github.com/silenceper/wechat/v2/pay/config"
)

var WC *wechat.Wechat                         // 微信
var Official *officialaccount.OfficialAccount // 微信公众号
var MiniProgram *miniprogram.MiniProgram      // 微信小程序
var Pay *pay.Pay                              // 微信支付
var memory *cache.Memory                      // 微信缓存

func init() {
    WC = wechat.NewWechat()
    memory = cache.NewMemory()
    InitOfficial()
    InitMiniProgram()
    InitPay()
}

func InitOfficial() {
    cfg1 := &offConfig.Config{
        AppID:     AppID,
        AppSecret: AppSecret,
        Cache:     memory,
    }
    Official = WC.GetOfficialAccount(cfg1)
}

func InitMiniProgram() {
    cfg2 := &miniConfig.Config{
        AppID:     AppID,
        AppSecret: AppSecret,
        Cache:     memory,
    }
    MiniProgram = WC.GetMiniProgram(cfg2)
}

func InitPay() {
    cfg3 := &payConfig.Config{
        AppID:     AppID,
        MchID:     MchID,
        Key:       Key,
        NotifyURL: NotifyURL,
    }
    Pay = WC.GetPay(cfg3)
}

使用

package main

import (
    "fmt"
    "os"
)

func main() {
    // 注:使用该工具无需关注AccessToken的获取&失效问题
    // 工具内部已经封装对AccessToken的缓存与刷新逻辑
    // 用户只需关注实际需要调用的API即可
    // 示例:获取公众号所有用户openid
    ds, err := wx.Official.GetUser().ListAllUserOpenIDs()
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println("count", len(ds))
        for i, v := range ds {
            fmt.Println(i, v)
        }
    }
}

打印结果

count 59
0 otlUS1HpVEUEnE-64Q3EZDbxvV2g
1 otlUS1BxyVhVUD44QoJZ-mSokB_c
2 otlUS1O64PI6svk4tvGa6oU3rfSk
3 otlUS1DEse6XKfyJd2WyV5hliNCs
...
57 otlUS1DdGvBajcxni1szCyNeiYsk
58 otlUS1EH6jiBHlXzMLqBgFz2vvBs

results matching ""

    No results matching ""