Documentation
¶
Overview ¶
微信小程序开发 SDK
See: https://developers.weixin.qq.com/miniprogram/dev/api-backend/
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var WXServerUrl = "https://api.weixin.qq.com"
微信 api 服务器地址
Functions ¶
func GetAccessToken ¶
func GetAccessToken(ctx *Miniprogram) (accessToken string, err error)
从 公众号实例 的 AccessToken 管理器 获取 access_token
如果没有 access_token 或者 已过期,那么刷新
获得新的 access_token 后 过期时间设置为 0.9 * expiresIn 提供一定冗余
Types ¶
type AccessToken ¶
type AccessToken struct {
Cache cachego.Cache
GetAccessTokenHandler GetAccessTokenFunc
}
AccessToken 管理器 处理缓存 和 刷新 逻辑
type Client ¶
type Client struct {
Ctx *Miniprogram
}
HttpClient 用于向公众号接口发送请求
type GetAccessTokenFunc ¶
type GetAccessTokenFunc func(ctx *Miniprogram) (accessToken string, err error)
GetAccessTokenFunc 获取 access_token 方法接口
type Miniprogram ¶
type Miniprogram struct {
Config MiniprogramConfig
AccessToken AccessToken
Client Client
Logger *log.Logger
}
Miniprogram 实例
func (*Miniprogram) SetAccessTokenCacheDriver ¶
func (miniprogram *Miniprogram) SetAccessTokenCacheDriver(driver cachego.Cache)
SetAccessTokenCacheDriver 设置 AccessToken 缓存器 默认为文件缓存:目录 os.TempDir()
驱动接口类型 为 cachego.Cache
Example ¶
package main
import (
"os"
"github.com/faabiosr/cachego/file"
"github.com/faabiosr/cachego/sync"
"github.com/fastwego/miniprogram"
)
func main() {
var App *miniprogram.Miniprogram
// 使用内存
App.SetAccessTokenCacheDriver(sync.New())
// 使用指定目录下的 文件
App.SetAccessTokenCacheDriver(file.New(os.TempDir()))
// 更多驱动 请查看 https://github.com/faabiosr/cachego
}
Output:
func (*Miniprogram) SetGetAccessTokenHandler ¶
func (miniprogram *Miniprogram) SetGetAccessTokenHandler(f GetAccessTokenFunc)
SetGetAccessTokenHandler 设置 AccessToken 获取方法。默认 从本地缓存获取(过期从微信接口刷新)
如果有多实例服务,可以设置为 Redis 或 RPC 等中控服务器 获取 就可以避免 AccessToken 刷新冲突
Example ¶
package main
import (
"github.com/fastwego/miniprogram"
"github.com/garyburd/redigo/redis"
)
func main() {
var Ctx *miniprogram.Miniprogram
conn, _ := redis.Dial("tcp", "127.0.0.1:6379")
_, _ = conn.Do("AUTH", "PASSWORD")
// 从远程 Redis 服务器 获取 AccessToken
Ctx.SetGetAccessTokenHandler(func(ctx *miniprogram.Miniprogram) (accessToken string, err error) {
accessToken, _ = redis.String(conn.Do("GET", "access_token:"+ctx.Config.Appid))
return
})
}
Output:
func (*Miniprogram) SetLogger ¶
func (miniprogram *Miniprogram) SetLogger(logger *log.Logger)
SetLogger 日志记录 默认输出到 os.Stdout
可以新建 logger 输出到指定文件
如果不想开启日志,可以输出到 /dev/null log.SetOutput(ioutil.Discard)
Example ¶
package main
import (
"log"
"os"
"github.com/fastwego/miniprogram"
)
func main() {
var Ctx *miniprogram.Miniprogram
// 输出日志到控制台
Ctx.SetLogger(log.New(os.Stdout, "[miniprogram]", log.LstdFlags))
// 记录日志到指定文件
logFile, _ := os.OpenFile("/path/to/file", os.O_WRONLY, 0644)
Ctx.SetLogger(log.New(logFile, "[miniprogram]", log.LstdFlags))
// 关闭日志
Ctx.SetLogger(nil)
}
Output:
Directories
¶
| Path | Synopsis |
|---|---|
|
apis
|
|
|
ad
Package ad 广告
|
Package ad 广告 |
|
customer_message
Package customer_message 客服消息
|
Package customer_message 客服消息 |
|
datacube
Package datacube 数据分析
|
Package datacube 数据分析 |
|
delivery/mini
Package mini 即时配送/小程序使用
|
Package mini 即时配送/小程序使用 |
|
delivery/provider
Package provider 即时配送/运力方
|
Package provider 即时配送/运力方 |
|
img
Package img 图像处理
|
Package img 图像处理 |
|
logistics/mini
Package mini 物流助手/小程序使用
|
Package mini 物流助手/小程序使用 |
|
logistics/provider
Package provider 物流助手/运力方
|
Package provider 物流助手/运力方 |
|
nearbypoi
Package nearbypoi 附近的小程序
|
Package nearbypoi 附近的小程序 |
|
ocr
Package ocr OCR
|
Package ocr OCR |
|
operation
Package operation 运维中心
|
Package operation 运维中心 |
|
plugin
Package plugin 插件管理
|
Package plugin 插件管理 |
|
search
Package search 小程序搜索
|
Package search 小程序搜索 |
|
security
Package security 内容安全
|
Package security 内容安全 |
|
service_market
Package service_market 服务市场
|
Package service_market 服务市场 |
|
subscribe
Package subscribe 订阅消息
|
Package subscribe 订阅消息 |
|
uniform_message
Package uniform_message 统一服务消息
|
Package uniform_message 统一服务消息 |
|
updatable_message
Package updatable_message 动态消息
|
Package updatable_message 动态消息 |
|
user
Package user 用户
|
Package user 用户 |
|
verify
Package verify 生物认证
|
Package verify 生物认证 |
|
wxacode
Package wxacode 小程序码
|
Package wxacode 小程序码 |
|
minigame
|
|
|
apis/data
Package data 开放数据
|
Package data 开放数据 |
|
apis/frame
Package frame 帧同步
|
Package frame 帧同步 |
|
apis/pay
Package pay 虚拟支付
|
Package pay 虚拟支付 |
|
apis/security
Package security 内容安全
|
Package security 内容安全 |
|
apis/subscribe
Package subscribe 订阅消息
|
Package subscribe 订阅消息 |
|
apis/updatable_message
Package updatable_message 动态消息
|
Package updatable_message 动态消息 |
|
apis/user
Package user 用户
|
Package user 用户 |
|
apis/wxacode
Package wxacode 小程序码
|
Package wxacode 小程序码 |
|
cmd
command
|
|
|
Package test 模拟微信服务器 测试
|
Package test 模拟微信服务器 测试 |
Click to show internal directories.
Click to hide internal directories.
