common

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2021 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ApiUrl            = "https://api.weixin.qq.com"
	CacheNeverTimeout = -1 // 第三方平台或公众号接口调用令牌默认过期时间
	TextMessageKey    = "wechat:tm:%s"
	TicketKey         = "wechat:%s:ticket"
	TokenKey          = "wechat:%s:token"
	AuthorizationKey  = "wechat:%s:authorization"
	AccessTokenKey    = "wechat:%s:access_token"
	JsApiTicketKey    = "wechat:%s:js_api_ticket"
	RefreshTime       = "wechat:%s:refresh_time"
)
View Source
const CallUserAgent = "Mozilla/5.0 (Linux x86_64) TitanWechat/1.0.0"

Variables

This section is empty.

Functions

func Concat

func Concat(args ...string) string

Concat 字符串拼接

func JsonTo

func JsonTo(v interface{}, indent bool) string

func MaskAccessTokenByCodeOpenUrl

func MaskAccessTokenByCodeOpenUrl(cp cache.Provider, url, componentAppId, code string) (result string, err error)

func MaskAccessTokenUrl

func MaskAccessTokenUrl(cp cache.Provider, logger *log.Slf4g, appId string) (string, bool)

func MaskAuthorizationAccessTokenUrl

func MaskAuthorizationAccessTokenUrl(cp cache.Provider, logger *log.Slf4g, appId string) (string, bool)

func XmlTo

func XmlTo(v interface{}, indent bool) string

Types

type AccessTokenModel

type AccessTokenModel struct {
	ErrorModel
	AccessToken string `json:"access_token"`
	Expire      int    `json:"expires_in"`
}

AccessTokenModel 服务端accesstoken接口返回参数说明 属性 类型 说明 access_token string 获取到的凭证 expires_in number 凭证有效时间,单位:秒。目前是7200秒之内的值。 errcode number 错误码 errmsg string 错误信息

返回errcode的合法值 值 说明 -1 系统繁忙,此时请开发者稍候再试 0 请求成功 40001 AppSecret 错误或者 AppSecret 不属于这个小程序,请开发者确认 AppSecret 的正确性 40002 请确保 grant_type 字段值为 client_credential 40013 不合法的 AppID,请开发者检查 AppID 的正确性,避免异常字符,注意大小写

type Adapter

type Adapter interface {
	GetKey() []string
	CallBack(CallbackModel) string
	GetValue(context []byte, value interface{}) error
}

func NewAdapter

func NewAdapter(key []string, call func(CallbackModel, Adapter) string) Adapter

type Api

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

func NewApi

func NewApi(host string) *Api

func (*Api) Get

func (a *Api) Get(url string, body map[string]interface{}) *api

func (*Api) Post

func (a *Api) Post(url string, body map[string]interface{}) *api

type AuthorizationInfo

type AuthorizationInfo struct {
	AuthorizerAppId        string `json:"authorizer_appid"`         // 授权方 appid
	AuthorizerAccessToken  string `json:"authorizer_access_token"`  // 接口调用令牌(在授权的公众号/小程序具备 API 权限时,才有此返回值)
	ExpiresIn              int    `json:"expires_in"`               // 有效期,单位:秒
	AuthorizerRefreshToken string `json:"authorizer_refresh_token"` // 刷新令牌(在授权的公众号具备API权限时,才有此返回值),刷新令牌主要用于第三方平台获取和刷新已授权用户的 authorizer_access_token。
	FuncInfo               []struct {
		FuncScopeCategory struct {
			Id uint32 `json:"id"`
		} `json:"funcscope_category"`
		ConfirmInfo struct {
			NeedConfirm    uint32 `json:"need_confirm"`
			AlreadyConfirm uint32 `json:"already_confirm"`
			CanConfirm     uint32 `json:"can_confirm"`
		} `json:"confirm_info"`
	} `json:"func_info"`
}

AuthorizationInfo 参数 类型 说明 authorization_appid string 授权方 appid func_info object 授权给开发者的权限集列表

{
 "authorizer_appid": "wx58a6179c79e038e7",
 "authorizer_refresh_token": "refreshtoken@@@XM0FapXdhUmRpVmm9o9_J1h8QeAwnAjUB5cpvGSR6tQ",
 "func_info": [
   {"funcscope_category": {"id": 23}},
   {"funcscope_category": {"id": 24},"confirm_info": {"need_confirm": 0,"already_confirm": 0,"can_confirm": 0}},
   {"funcscope_category": {"id": 26}},
   {"funcscope_category": {"id": 27 },"confirm_info": {"need_confirm": 0,"already_confirm": 0,"can_confirm": 0}}
 ]
}

type CallbackMessage

type CallbackMessage struct {
	InfoType string `xml:"InfoType"` // 消息类型
	MsgType  string `xml:"MsgType"`  // 消息类型
	Event    string `xml:"Event"`    // 事件类型
}

CallbackMessage 开放平台(只有InfoType)与公众号(MsgType/Event)回调信息结构

func (CallbackMessage) Key

func (cm CallbackMessage) Key() string

type CallbackModel

type CallbackModel struct {
	OpenId    string            `json:"openId"`
	AppId     string            `json:"appId"`
	Timestamp string            `json:"timestamp"` //签名时间
	Nonce     string            `json:"nonce"`     //随机数
	Data      []byte            `json:"data"`      //post Data中的XML体
	Extra     map[string]string `json:"extra"`     //附加的数据
}

func (*CallbackModel) String

func (cm *CallbackModel) String() string

type Crypter

type Crypter interface {
	Encrypt(text, id string) (string, error)
	Decrypt(text, id string) ([]byte, error)
}

公众平台消息加解密接口

func NewAesCrypter

func NewAesCrypter(key []byte) Crypter

type EncryptedMessage

type EncryptedMessage struct {
	ToUserName string `xml:"ToUserName"`
	AppId      string `xml:"AppId"`
	Encrypt    string `xml:"Encrypt"`
}

type ErrorModel

type ErrorModel struct {
	ErrCode uint32 `json:"errcode"`
	ErrMsg  string `json:"errmsg"`
}

func (ErrorModel) Success

func (em ErrorModel) Success() bool

type MsgType

type MsgType string
const (
	MsgTypeText  MsgType = "text"  // 文本消息
	MsgTypeImage MsgType = "image" // 图片消息
	MsgTypeVoice MsgType = "voice" // 语音消息
	MsgTypeVideo MsgType = "video" // 视频消息
	MsgTypeMusic MsgType = "music" // 音乐消息
	MsgTypeNews  MsgType = "news"  // 图文消息
	MsgTypeEvent MsgType = "event" // 事件消息
)

type TicketType

type TicketType int

TicketType ticket类型枚举

const (
	JSAPI  TicketType // jsapi
	SDK               // sdk
	WxCard            // 微信卡券
)

func (TicketType) Code

func (tt TicketType) Code() string

type WeChatThirdCrypter

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

func NewWeChatThirdCrypter

func NewWeChatThirdCrypter(appId, token, encodingAesKey string) *WeChatThirdCrypter

func (*WeChatThirdCrypter) DecryptMessage

func (w *WeChatThirdCrypter) DecryptMessage(encrypt, msgSignature, timestamp, nonce string) ([]byte, error)

func (*WeChatThirdCrypter) EncryptMessage

func (w *WeChatThirdCrypter) EncryptMessage(msg, timestamp, nonce string) (string, error)

type WechatApi

type WechatApi struct {
	*Api

	Cache cache.Provider
	Log   *log.Slf4g
	// contains filtered or unexported fields
}

func NewWechatApi

func NewWechatApi(cp cache.Provider, log *log.Slf4g, isOpen bool, appId, secret string) *WechatApi

func (*WechatApi) AccessToken

func (ba *WechatApi) AccessToken() bool

AccessToken 获取小程序全局唯一后台接口调用凭据(access_token)。调用绝大多数后台接口时都需使用 access_token 请求地址 GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 请求参数 属性 类型 必填 说明 grant_type string 是 填写 client_credential appid string 是 小程序唯一凭证,即 AppID,可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态) secret string 是 小程序唯一凭证密钥,即 AppSecret,获取方式同 appid 返回类型 AccessTokenModel 根据接口返回的有效期进行redis缓存 注意: 缓存后不能在其他地方重新生成access_token, 否则缓存的token会失效

func (*WechatApi) MaskAccessTokenByCodeUrl

func (ba *WechatApi) MaskAccessTokenByCodeUrl(url, componentUrl, componentAppId, code string) (result string, err error)

func (*WechatApi) MaskTokenUrl

func (ba *WechatApi) MaskTokenUrl(url string) (token string, ok bool)

func (*WechatApi) Params

func (ba *WechatApi) Params() map[string]interface{}

type WxType

type WxType uint32

WxType 微信类型枚举

const (
	CP      WxType // 企业微信
	MP             // 微信公众号
	MiniApp        // 微信小程序
	Open           // 微信开放平台
	Pay            // 微信支付
)

Jump to

Keyboard shortcuts

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