miniapp

package
v0.0.0-...-cb86426 Latest Latest
Warning

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

Go to latest
Published: May 8, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

云开发-短信.

生物识别.

小程序链接.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIURL

type APIURL string

func (APIURL) Format

func (uri APIURL) Format(args ...interface{}) string

type CodeGenArg

type CodeGenArg struct {
	Sence     string `json:"scene"`
	Path      string `json:"page,omitempty"`
	CheckPath bool   `json:"check_path"`
	// Env 要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版.
	Env       string `json:"env_version,omitempty"`
	Width     int    `json:"width,omitempty"`
	AutoColor bool   `json:"auto_color,omitempty"`
	LineColor struct {
		R string `json:"r"`
		G string `json:"g"`
		B string `json:"b"`
	} `json:"line_color,omitempty"`
	// IsHyaline 默认是false,是否需要透明底色,为 true 时,生成透明底色的小程序.
	IsHyaline bool `json:"is_hyaline,omitempty"`
}

CodeGenArg 小程序码生成参数

type MiniProgramState

type MiniProgramState string
const (
	State_Developer MiniProgramState = "developer"
	State_Trial     MiniProgramState = "trial"
	State_Formal    MiniProgramState = "formal"
)

type NFCSchemaGenReq

type NFCSchemaGenReq struct {
	URLSchemaGenReq
	ModelID string `json:"model_id"` // scheme对应的设备model_id
	SN      string `json:"sn"`       // scheme对应的设备sn,仅一机一码时填写
}
type OpenLink string

type OptionFunc

type OptionFunc func(*WXMiniClient)

OptionFunc 配置函数

func WithDebug

func WithDebug() OptionFunc

func WithTokenServer

func WithTokenServer(uri string) OptionFunc

WithTokenServer 设置Token server

type SMSSendReq

type SMSSendReq struct {
	// Env 云开发环境ID.
	Env  string  `json:"env"`
	Link URLLink `json:"url_link"`
	// TmplId 短信模版 ID。(844110: 营销类短信模版 ID).
	TmplId string `json:"template_id"`
	// Params 短信模版变量数组.
	Params []string `json:"template_param_list"`
	// Phones 手机号列表,单次请求最多支持 1000 个境内手机号,手机号必须以+86开头.
	Phones []string `json:"phone_number_list"`
	// UseShortName 是否使用小程序简称.
	UseShortName bool `json:"use_short_name,omitempty"`
	// ResourceAppID 资源方appid,第三方代开发时可填第三方appid或小程序appid,应为所填环境所属的账号APPID.
	ResourceAppID string `json:"resource_appid"`
}

type SMSSendResp

type SMSSendResp struct {
	Results []struct {
		SerialNo    string `json:"serial_no"`
		PhoneNumber string `json:"phone_number"`
		Code        string `json:"code"`
		Message     string `json:"message"`
		// IsoCode 国家码或地区码.
		IsoCode string `json:"iso_code"`
	} `json:"send_status_list"`
}

type ShortURLLinkGenerateReq

type ShortURLLinkGenerateReq struct {
	// PageUrl 通过 Short Link 进入的小程序页面路径,必须是已经发布的小程序存在的页面,可携带 query,最大1024个字符.
	PageUrl string `json:"page_url"`
	// PageTitle 页面标题,不能包含违法信息,超过20字符会用... 截断代替.
	PageTitle string `json:"page_title"`
	// Permanent 默认值false。生成的 Short Link 类型,短期有效:false,永久有效:true.
	Permanent bool `json:"is_permanent"`
}

type SoterResult

type SoterResult struct {
	// Raw 调用者传入的challenge.
	Raw string `json:"raw"`
	// FId (仅Android支持)本次生物识别认证的生物信息编号(如指纹识别则是指纹信息在本设备内部编号).
	FId string `json:"fid"`
	// Counter 防重放特征参数.
	Counter int64 `json:"counter"`
	// TeeName TEE名称(如高通或者trustonic等).
	TeeName string `json:"tee_n"`
	// TeeVersion TEE版本号.
	TeeVersion string `json:"tee_v"`
	// FpN 指纹以及相关逻辑模块提供商(如FPC等).
	FPN string `json:"fp_n"`
	// FPV 指纹以及相关模块版本号.
	FPV string `json:"fp_v"`
	// CPUId 机器唯一识别ID.
	CPUId string `json:"cpu_id"`
	// UId 概念同Android系统定义uid,即应用程序编号.
	UId string `json:"uid"`
}

type SubscribeMsgTmpl

type SubscribeMsgTmpl struct {
	ToUser     string                   `json:"touser"`
	TemplateID string                   `json:"template_id"`
	Page       string                   `json:"page"`
	State      MiniProgramState         `json:"miniprogram_state"`
	Lang       string                   `json:"lang"` // 进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
	Data       map[string]tmplFieldData `json:"data"`
}

func NewSubscribeMsgTmpl

func NewSubscribeMsgTmpl(openid, templateid, page string) *SubscribeMsgTmpl

func (*SubscribeMsgTmpl) Put

func (t *SubscribeMsgTmpl) Put(key, value string) *SubscribeMsgTmpl

Put 追加数据项

type TmplData

type TmplData struct {
	ToUser     string                   `json:"touser"`
	TemplateID string                   `json:"template_id"`
	Page       string                   `json:"page"`
	FormID     string                   `json:"form_id"`          // Prepayid or form id
	Keyword    string                   `json:"emphasis_keyword"` // 模板需要放大的关键词,不填则默认无放大
	Data       map[string]tmplFieldData `json:"data"`
	FontColor  string                   `json:"color"` // 模板内容字体的颜色,不填默认黑色
}

TmplData 微信小程序模板消息

func NewTmplData

func NewTmplData(openid, templateid, formid string) *TmplData

NewTmplData 创建模板

func (t *TmplData) Link(page string)

Link 设置跳转页

func (*TmplData) Put

func (t *TmplData) Put(key, value, color string)

Put 追加数据项

type URLLink string

type URLLinkDetail

type URLLinkDetail struct {
	LinkInfo struct {
		AppID      string `json:"appid"`
		Path       string `json:"path"`
		Query      string `json:"query"`
		CreateTime int64  `json:"create_time"`
		ExpireTime int64  `json:"expire_time"`
		Env        string `json:"env_version"`
	} `json:"url_link_info"`
	LinkQuota struct {
		// Used 长期有效 url_link 已生成次数.
		Used int64 `json:"long_time_used"`
		// Limit 长期有效 url_link 生成次数上限.
		Limit int64 `json:"long_time_limit"`
	} `json:"url_link_quota"`
	// VisiOpenID 访问scheme的用户openid,为空表示未被访问过.
	VisitOpenID string `json:"visit_openid"`
}

type URLLinkGenerateReq

type URLLinkGenerateReq struct {
	// Path 通过 scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页.
	Path string `json:"path,omitempty"`
	// Query 通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:`!#$&'()*+,/:;=?@-._~%`.
	Query string `json:"query,omitempty"`
	// 默认值"release"。要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop",仅在微信外打开时生效.
	Env string `json:"env_version,omitempty"`

	CloudBase struct {
		// Path 通过 scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页.
		Path string `json:"path,omitempty"`
		// Query 通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:`!#$&'()*+,/:;=?@-._~%`.
		Query string `json:"query,omitempty"`
		// 默认值"release"。要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop",仅在微信外打开时生效.
		Env string `json:"env_version,omitempty"`
		// Domain 静态网站自定义域名,不填则使用默认域名.
		Domain string `json:"domain,omitempty"`
		// ResourceAppID 第三方批量代云开发时必填,表示创建该 env 的 appid (小程序/第三方平台).
		ResourceAppID string `json:"resource_appid,omitempty"`
	} `json:"cloud_base,omitempty"`
}

type URLSchemaDetail

type URLSchemaDetail struct {
	SchemaInfo struct {
		AppID      string `json:"appid"`
		Path       string `json:"path"`
		Query      string `json:"query"`
		CreateTime int64  `json:"create_time"`
		ExpireTime int64  `json:"expire_time"`
		Env        string `json:"env_version"`
	} `json:"scheme_info"`
	// VisiOpenID 访问scheme的用户openid,为空表示未被访问过.
	VisitOpenID string `json:"visit_openid"`
}

type URLSchemaGenReq

type URLSchemaGenReq struct {
	JumpWxa struct {
		// Path 通过 scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页.
		Path string `json:"path,omitempty"`
		// Query 通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:`!#$&'()*+,/:;=?@-._~%`.
		Query string `json:"query,omitempty"`
		// 默认值"release"。要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop",仅在微信外打开时生效.
		Env string `json:"env_version,omitempty"`
	} `json:"jump_wxa"`
}

type WXAppSession

type WXAppSession struct {
	ErrCode    int
	ErrMsg     string
	OpenID     string
	UnionID    string
	SessionKey string `json:"session_key"`
}

WXAppSession 微信小程序会话

type WXMiniClient

type WXMiniClient struct {
	// contains filtered or unexported fields
}

WXMiniClient 微信小程序客户端

func NewClient

func NewClient(appid, secret string, options ...OptionFunc) *WXMiniClient

NewClient 创建客户端

func (*WXMiniClient) AppID

func (c *WXMiniClient) AppID() string

AppID 返回当前小程序APP ID

func (*WXMiniClient) CreateActivityID

func (c *WXMiniClient) CreateActivityID(openid, unionid string) (string, error)

func (*WXMiniClient) DecryptPhoneNumber

func (c *WXMiniClient) DecryptPhoneNumber(iv, cipherTxt, sessionKey string) (WXPhoneInfo, error)

GetPhoneNumber 获取微信绑定电话号码.

func (*WXMiniClient) EnableDebug

func (c *WXMiniClient) EnableDebug()

func (*WXMiniClient) GenerateNFCSchema

func (c *WXMiniClient) GenerateNFCSchema(req NFCSchemaGenReq) (OpenLink, error)

GenerateNFCSchema 用于获取用于 NFC 的小程序 scheme 码,适用于 NFC 拉起小程序的业务场景。 目前仅针对国内非个人主体的小程序开放,详见 NFC 标签打开小程序。

func (c *WXMiniClient) GenerateShortURLLink(req ShortURLLinkGenerateReq) (URLLink, error)

GenerateShortURLLink 获取小程序 Short Link,适用于微信内拉起小程序的业务场景。 目前只开放给电商类目(具体包含以下一级类目:电商平台、商家自营、跨境电商)。 通过该接口,可以选择生成到期失效和永久有效的小程序短链, 详情参考:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/shortlink.html, ***调用上限*** Link 将根据是否为到期有效与失效时间参数,分为**短期有效ShortLink ** 与 **永久有效ShortLink **: 单个小程序每日生成 ShortLink 上限为50万个(包含短期有效 ShortLink 与长期有效 ShortLink ) 单个小程序总共可生成永久有效 ShortLink 上限为10万个,请谨慎调用。 短期有效ShortLink 有效时间为30天,单个小程序生成短期有效ShortLink 不设上限.

func (c *WXMiniClient) GenerateURLLink(req URLLinkGenerateReq) (URLLink, error)

GenerateURLLInk 获取小程序 URL Link,适用于短信、邮件、网页、微信内等拉起小程序的业务场景。 通过该接口,可以选择生成到期失效和永久有效的小程序链接,有数量限制,目前仅针对国内非个人主体的小程序开放, 详情参考 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-link.html.

func (*WXMiniClient) GenerateURLSchema

func (c *WXMiniClient) GenerateURLSchema(req URLSchemaGenReq) (OpenLink, error)

GenerateURLSchema 该接口用于获取小程序 scheme 码,适用于短信、邮件、外部网页、微信内等拉起小程序的业务场景。 通过该接口,可以选择生成到期失效和永久有效的小程序码,有数量限制,目前仅针对国内非个人主体的小程序开放, 详情参考 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html.

func (*WXMiniClient) GetPhoneNumber

func (c *WXMiniClient) GetPhoneNumber(code string) (WXPhoneInfo, error)

func (*WXMiniClient) GetSessionKey

func (c *WXMiniClient) GetSessionKey(code string) (WXAppSession, error)

GetSessionKey 获取小程序session key

func (*WXMiniClient) GetUserInfo

func (c *WXMiniClient) GetUserInfo(iv, cipherTxt, sessionKey string) (WXUserInfo, error)

GetUserInfo 获取微信用户信息

func (c *WXMiniClient) QueryURLLink(link URLLink) (URLLinkDetail, error)

func (*WXMiniClient) QueryURLSchema

func (c *WXMiniClient) QueryURLSchema(schema OpenLink) (URLSchemaDetail, error)

func (*WXMiniClient) SendSMS

func (c *WXMiniClient) SendSMS(req SMSSendReq) (SMSSendResp, error)

SendSMS 发送携带 URL Link 的短信.

func (*WXMiniClient) SendSubscribeMsg

func (c *WXMiniClient) SendSubscribeMsg(tmpl SubscribeMsgTmpl) error

SendSubscribeMsg 发送订阅消息.

func (*WXMiniClient) VerifySignature

func (c *WXMiniClient) VerifySignature(openid, jsonstr, signature string) (SoterResult, error)

VerifySignature 用于SOTER 生物认证秘钥签名验证.

func (*WXMiniClient) WXACode_A

func (c *WXMiniClient) WXACode_A(arg CodeGenArg) (io.Reader, error)

WXACode_A 适用于需要的码数量较少的业务场景 通过该接口生成的小程序码,永久有效,数量限制见文末说明,请谨慎使用。 用户扫描该码进入小程序后,将直接进入 path 对应的页面

func (*WXMiniClient) WXACode_B

func (c *WXMiniClient) WXACode_B(arg CodeGenArg) (io.Reader, error)

WXACode_B 适用于需要的码数量极多,或仅临时使用的业务场景 通过该接口生成的小程序码,永久有效,数量暂无限制。用户扫描该码进入小程序后, 开发者需在对应页面获取的码中 scene 字段的值,再做处理逻辑。 使用如下代码可以获取到二维码中的 scene 字段的值。 调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟, 开发工具模拟时的 scene 的参数值需要进行 urlencode

func (*WXMiniClient) WXACode_C

func (c *WXMiniClient) WXACode_C(arg CodeGenArg) (io.Reader, error)

WXACode_C 适用于需要的码数量较少的业务场景 通过该接口生成的小程序二维码,永久有效,数量限制见文末说明,请谨慎使用。 用户扫描该码进入小程序后,将直接进入 path 对应的页面

func (*WXMiniClient) WXAppDecript

func (c *WXMiniClient) WXAppDecript(crypted, sessionkey, iv string) ([]byte, error)

WXAppDecript 小程序解密

func (*WXMiniClient) WXAppSign

func (c *WXMiniClient) WXAppSign(rawdata, sessionkey string) string

WXAppSign 小程序签名验证

type WXPhoneInfo

type WXPhoneInfo struct {
	Phone     string `json:"phoneNumber"`
	PurePhone string `json:"purePhoneNumber"`
	Country   string `json:"countryCode"`
	WaterMark struct {
		AppID     string `json:"appid"`
		Timestamp int64  `json:"timestamp"`
	} `json:"watermark"`
}

WXPhoneInfo 微信账号绑定电话信息

type WXSexType

type WXSexType byte

func (WXSexType) String

func (t WXSexType) String() string

type WXUserInfo

type WXUserInfo struct {
	OpenID     string    `json:"openid"`
	NickName   string    `json:"nickname"`
	Gender     WXSexType `json:"gender"`
	Language   string    `json:"language"`
	City       string    `json:"city"`
	Province   string    `json:"province"`
	Country    string    `json:"country"`
	HeadImgUrl string    `json:"avatarUrl"`
	UnionID    string    `json:"unionId"`
	WaterMark  struct {
		AppID     string `json:"appid"`
		Timestamp int64  `json:"timestamp"`
	} `json:"watermark"`
}

WXUserInfo 微信小程序用户信息

Jump to

Keyboard shortcuts

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