miniprogram

package module
v0.0.0-...-a2de57b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 23, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

README

fastwego/miniprogram

A fast wechat miniprogram/minigame development sdk written in Golang

GoDoc Go Report Card

快速开始 & demo

go get github.com/fastwego/miniprogram
// 创建小程序/小游戏实例
app := miniprogram.New(miniprogram.Config{
    Appid:  "APPID",
    Secret: "SECRET",
})

var payload = []byte(`{
  "begin_date" : "20170313",
  "end_date" : "20170313"
}`)

// 调用 api
resp, err := datacube.GetDailyRetain(app, payload)
fmt.Println(string(resp),err)

完整演示项目:

https://github.com/fastwego/miniprogram-demo

接口列表:

架构设计

sdk

框架特点

快速

「快」作为框架设计的核心理念,体现在方方面面:

  • 使用 Go 语言,开发快、编译快、部署快、运行快,轻松服务海量用户
  • 丰富的文档演示代码 ,快速上手,5 分钟即可搭建一套完整的微信服务
  • 独立清晰的模块划分,快速熟悉整个框架,没有意外,一切都是你期望的样子
  • 甚至连框架自身的大部分代码也是自动生成的,维护更新快到超乎想象
符合直觉

作为第三方开发框架,尽可能贴合官方文档和设计,不引入新的概念,不给开发者添加学习负担

官方文档就是最好的文档

每个接口的注释都附带官方文档的链接,让你随时翻阅,省时省心

完备的单元测试

100% 覆盖每一个接口,让你每一次调用都信心满满

详细的日志

每个关键环节都为你完整记录,Debug 倍轻松,你可以自由定义日志输出,甚至可以关闭日志

支持服务集群

单台服务器支撑不住访问流量/想提高服务可用性?

只需 设置 GetAccessTokenFunc 方法 ,从中控服务获取 AccessToken,即可解决多实例刷新冲突/覆盖的问题

活跃的开发者社区

FastWeGo 是一套完整的微信开发框架,包括公众号、开放平台、微信支付、企业微信、小程序、小游戏等微信服务,拥有庞大的开发者用户群体

你遇到的所有问题几乎都可以在社区找到解决方案

参与贡献

欢迎提交 pr/issue 或者 文档,一起让微信开发更快更好!

Faster we go together!

加入开发者交流群

Documentation

Overview

微信小程序开发 SDK

See: https://developers.weixin.qq.com/miniprogram/dev/api-backend/

Index

Constants

This section is empty.

Variables

View Source
var (
	WXServerUrl            = "https://api.weixin.qq.com" // 微信 api 服务器地址
	UserAgent              = "fastwego/miniprogram"
	ErrorAccessTokenExpire = errors.New("access token expire")
	ErrorSystemBusy        = errors.New("system busy")
)

Functions

func GetAccessToken

func GetAccessToken(ctx *Miniprogram) (accessToken string, err error)

从 公众号实例 的 AccessToken 管理器 获取 access_token

如果没有 access_token 或者 已过期,那么刷新

获得新的 access_token 后 过期时间设置为 0.9 * expiresIn 提供一定冗余

func NoticeAccessTokenExpire

func NoticeAccessTokenExpire(ctx *Miniprogram) (err error)

NoticeAccessTokenExpire 只需将本地存储的 access_token 删除,即完成了 access_token 已过期的 主动通知

retry 请求的时候,会发现本地没有 access_token ,从而触发refresh

Types

type AccessToken

type AccessToken struct {
	Cache                          cachego.Cache
	GetAccessTokenHandler          GetAccessTokenFunc
	NoticeAccessTokenExpireHandler NoticeAccessTokenExpireFunc
}

AccessToken 管理器 处理缓存 和 刷新 逻辑

type Client

type Client struct {
	Ctx *Miniprogram
}

HttpClient 用于向公众号接口发送请求

func (*Client) HTTPGet

func (client *Client) HTTPGet(uri string) (resp []byte, err error)

HTTPGet GET 请求

func (*Client) HTTPPost

func (client *Client) HTTPPost(uri string, payload io.Reader, contentType string) (resp []byte, err error)

HTTPPost POST 请求

type Config

type Config struct {
	Appid  string
	Secret string
}

小程序配置

type GetAccessTokenFunc

type GetAccessTokenFunc func(ctx *Miniprogram) (accessToken string, err error)

GetAccessTokenFunc 获取 access_token 方法接口

type Miniprogram

type Miniprogram struct {
	Config      Config
	AccessToken AccessToken
	Client      Client
	Logger      *log.Logger
}

Miniprogram 实例

func New

func New(config Config) (miniprogram *Miniprogram)

创建小程序实例

type NoticeAccessTokenExpireFunc

type NoticeAccessTokenExpireFunc func(ctx *Miniprogram) (err error)

NoticeAccessTokenExpireFunc 通知中控 刷新 access_token

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
Package test 模拟微信服务器 测试
Package test 模拟微信服务器 测试
wxopen
apis/basic_info
Package basic_info 基础信息设置
Package basic_info 基础信息设置
apis/category
Package category 类目管理
Package category 类目管理
apis/code_management
Package code_management 代码管理
Package code_management 代码管理
apis/code_template_library_management
Package code_template_library_management 代码模板库设置
Package code_template_library_management 代码模板库设置
apis/member_admin
Package member_admin 成员管理
Package member_admin 成员管理
apis/qrcode
Package qrcode 普通链接二维码与小程序码
Package qrcode 普通链接二维码与小程序码
apis/subscribe_component
Package subscribe_component 扫码关注组件
Package subscribe_component 扫码关注组件
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL