Documentation
¶
Overview ¶
Package weixin MP SDK (Golang)
Index ¶
- Constants
- type AccessToken
- type Article
- type HandlerFunc
- type Material
- type Materials
- type Menu
- type MenuButton
- type MessageHeader
- type Music
- type QRScene
- type Request
- type ResponseWriter
- type TmplData
- type TmplItem
- type TmplMiniProgram
- type TmplMsg
- type UserAccessToken
- type UserInfo
- type Weixin
- func (wx *Weixin) AddTemplate(shortid string) (string, error)
- func (wx *Weixin) BatchGetMaterial(materialType string, offset int, count int) (*Materials, error)
- func (wx *Weixin) CreateHandlerFunc(w http.ResponseWriter, r *http.Request) http.HandlerFunc
- func (wx *Weixin) CreateMenu(menu *Menu) error
- func (wx *Weixin) CreateQRLimitScene(sceneID int) (*QRScene, error)
- func (wx *Weixin) CreateQRLimitSceneByString(sceneStr string) (*QRScene, error)
- func (wx *Weixin) CreateQRScene(sceneID int, expires int) (*QRScene, error)
- func (wx *Weixin) CreateQRSceneByString(sceneStr string, expires int) (*QRScene, error)
- func (wx *Weixin) CreateRedirectURL(urlStr string, scope string, state string) string
- func (wx *Weixin) DeleteMenu() error
- func (wx *Weixin) DownloadMedia(mediaID string, writer io.Writer) error
- func (wx *Weixin) DownloadMediaToFile(mediaID string, fp string) error
- func (wx *Weixin) GetAccessToken() AccessToken
- func (wx *Weixin) GetAppId() string
- func (wx *Weixin) GetAppSecret() string
- func (wx *Weixin) GetIpList() ([]string, error)
- func (wx *Weixin) GetJsAPITicket() (string, error)
- func (wx *Weixin) GetMenu() (*Menu, error)
- func (wx *Weixin) GetUserAccessToken(code string) (*UserAccessToken, error)
- func (wx *Weixin) GetUserInfo(openid string) (*UserInfo, error)
- func (wx *Weixin) HandleFunc(pattern string, handler HandlerFunc)
- func (wx *Weixin) JsSignature(url string, timestamp int64, noncestr string) (string, error)
- func (wx *Weixin) PostImage(touser string, mediaID string) error
- func (wx *Weixin) PostMusic(touser string, music *Music) error
- func (wx *Weixin) PostNews(touser string, articles []Article) error
- func (wx *Weixin) PostTemplateMessage(touser string, templateid string, url string, data TmplData, ...) (int64, error)
- func (wx *Weixin) PostTemplateMessageMiniProgram(msg *TmplMsg) (int64, error)
- func (wx *Weixin) PostText(touser string, text string) error
- func (wx *Weixin) PostVideo(touser string, m string, t string, d string) error
- func (wx *Weixin) PostVoice(touser string, mediaID string) error
- func (wx *Weixin) RefreshAccessToken()
- func (wx *Weixin) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (wx *Weixin) SetEncodingAESKey(key string) error
- func (wx *Weixin) SetTemplateIndustry(id1 string, id2 string) error
- func (wx *Weixin) ShortURL(url string) (string, error)
- func (wx *Weixin) UploadMedia(mediaType string, filename string, reader io.Reader) (string, error)
- func (wx *Weixin) UploadMediaFromFile(mediaType string, fp string) (string, error)
Constants ¶
const ( EventSubscribe = "subscribe" EventUnsubscribe = "unsubscribe" EventScan = "SCAN" EventView = "VIEW" EventClick = "CLICK" EventLocation = "LOCATION" EventTemplateSent = "TEMPLATESENDJOBFINISH" // Message type MsgTypeDefault = ".*" MsgTypeText = "text" MsgTypeImage = "image" MsgTypeVoice = "voice" MsgTypeVideo = "video" MsgTypeShortVideo = "shortvideo" MsgTypeLocation = "location" MsgTypeLink = "link" MsgTypeEvent = msgEvent + ".*" MsgTypeEventSubscribe = msgEvent + "\\." + EventSubscribe MsgTypeEventUnsubscribe = msgEvent + "\\." + EventUnsubscribe MsgTypeEventScan = msgEvent + "\\." + EventScan MsgTypeEventView = msgEvent + "\\." + EventView MsgTypeEventClick = msgEvent + "\\." + EventClick MsgTypeEventLocation = msgEvent + "\\." + EventLocation MsgTypeEventTemplateSent = msgEvent + "\\." + EventTemplateSent // Media type MediaTypeImage = "image" MediaTypeVoice = "voice" MediaTypeVideo = "video" MediaTypeThumb = "thumb" // Button type MenuButtonTypeKey = "click" MenuButtonTypeUrl = "view" MenuButtonTypeScancodePush = "scancode_push" MenuButtonTypeScancodeWaitmsg = "scancode_waitmsg" MenuButtonTypePicSysphoto = "pic_sysphoto" MenuButtonTypePicPhotoOrAlbum = "pic_photo_or_album" MenuButtonTypePicWeixin = "pic_weixin" MenuButtonTypeLocationSelect = "location_select" MenuButtonTypeMediaId = "media_id" MenuButtonTypeViewLimited = "view_limited" MenuButtonTypeMiniProgram = "miniprogram" // Template Status TemplateSentStatusSuccess = "success" TemplateSentStatusUserBlock = "failed:user block" TemplateSentStatusSystemFailed = "failed:system failed" // Redirect Scope RedirectURLScopeBasic = "snsapi_base" RedirectURLScopeUserInfo = "snsapi_userinfo" )
nolint
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessToken ¶
AccessToken define weixin access token.
type Article ¶
type Article struct {
Title string `json:"title"`
Description string `json:"description"`
PicUrl string `json:"picurl"` // nolint
Url string `json:"url"` // nolint
}
Article is the response of news message.
type HandlerFunc ¶
type HandlerFunc func(ResponseWriter, *Request)
HandlerFunc is callback function handler
type Material ¶
type Material struct {
MediaId string `json:"media_id,omitempty"` // nolint
Name string `json:"name,omitempty"`
UpdateTime int64 `json:"update_time,omitempty"`
CreateTime int64 `json:"create_time,omitempty"`
Url string `json:"url,omitempty"` // nolint
Content struct {
NewsItem []struct {
Title string `json:"title,omitempty"`
ThumbMediaId string `json:"thumb_media_id,omitempty"` // nolint
ShowCoverPic int `json:"show_cover_pic,omitempty"`
Author string `json:"author,omitempty"`
Digest string `json:"digest,omitempty"`
Content string `json:"content,omitempty"`
Url string `json:"url,omitempty"` // nolint
ContentSourceUrl string `json:"content_source_url,omitempty"` // nolint
} `json:"news_item,omitempty"`
} `json:"content,omitempty"`
}
Material data.
type Materials ¶
type Materials struct {
TotalCount int `json:"total_count,omitempty"`
ItemCount int `json:"item_count,omitempty"`
Items []Material `json:"item,omitempty"`
}
Materials is the list of material
type Menu ¶
type Menu struct {
Buttons []MenuButton `json:"button,omitempty"`
}
Menu is custom menu.
type MenuButton ¶
type MenuButton struct {
Name string `json:"name"`
Type string `json:"type,omitempty"`
Key string `json:"key,omitempty"`
Url string `json:"url,omitempty"` // nolint
MediaId string `json:"media_id,omitempty"` // nolint
SubButtons []MenuButton `json:"sub_button,omitempty"`
AppId string `json:"appid,omitempty"` // nolint
PagePath string `json:"pagepath,omitempty"`
}
MenuButton is the button of custom menu.
type MessageHeader ¶
type MessageHeader struct {
ToUserName string
FromUserName string
CreateTime int
MsgType string
Encrypt string
}
MessageHeader is the header of common message.
type Music ¶
type Music struct {
Title string `json:"title"`
Description string `json:"description"`
MusicUrl string `json:"musicurl"` // nolint
HQMusicUrl string `json:"hqmusicurl"` // nolint
ThumbMediaId string `json:"thumb_media_id"` // nolint
}
Music is the response of music message.
type QRScene ¶
type QRScene struct {
Ticket string `json:"ticket"`
ExpireSeconds int `json:"expire_seconds"`
Url string `json:"url,omitempty"` // nolint
}
QRScene is the QR code.
type Request ¶
type Request struct {
MessageHeader
MsgId int64 // nolint
Content string
PicUrl string // nolint
MediaId string // nolint
Format string
ThumbMediaId string // nolint
LocationX float32 `xml:"Location_X"`
LocationY float32 `xml:"Location_Y"`
Scale float32
Label string
Title string
Description string
Url string // nolint
Event string
EventKey string
Ticket string
Latitude float32
Longitude float32
Precision float32
Recognition string
Status string
}
Request is weixin event request.
type ResponseWriter ¶
type ResponseWriter interface {
// Get weixin
GetWeixin() *Weixin
GetUserData() interface{}
ReplyOK()
ReplyText(text string)
ReplyImage(mediaId string)
ReplyVoice(mediaId string)
ReplyVideo(mediaId string, title string, description string)
ReplyMusic(music *Music)
ReplyNews(articles []Article)
TransferCustomerService(serviceId string)
// Post message
PostText(text string) error
PostImage(mediaId string) error
PostVoice(mediaId string) error
PostVideo(mediaId string, title string, description string) error
PostMusic(music *Music) error
PostNews(articles []Article) error
PostTemplateMessage(templateid string, url string, data TmplData, miniprogram TmplMiniProgram) (int64, error)
// Media operator
UploadMediaFromFile(mediaType string, filepath string) (string, error)
DownloadMediaToFile(mediaId string, filepath string) error
UploadMedia(mediaType string, filename string, reader io.Reader) (string, error)
DownloadMedia(mediaId string, writer io.Writer) error
// contains filtered or unexported methods
}
ResponseWriter is used to output reply nolint
type TmplItem ¶
type TmplItem struct {
Value string `json:"value,omitempty"`
Color string `json:"color,omitempty"`
}
TmplItem for mini program
type TmplMiniProgram ¶
type TmplMiniProgram struct {
AppId string `json:"appid,omitempty"` // nolint
PagePath string `json:"pagepath,omitempty"`
}
TmplMiniProgram for mini program
type TmplMsg ¶
type TmplMsg struct {
ToUser string `json:"touser"`
TemplateId string `json:"template_id"` // nolint
Url string `json:"url,omitempty"` // nolint 若填写跳转小程序 则此为版本过低的替代跳转url
MiniProgram *TmplMiniProgram `json:"miniprogram,omitempty"` // 跳转小程序 选填
Data TmplData `json:"data,omitempty"`
Color string `json:"color,omitempty"` // 全局颜色
}
TmplMsg for mini program
type UserAccessToken ¶
type UserAccessToken struct {
AccessToken string `json:"access_token"`
RefreshToken string `json:"refresh_token"`
ExpireSeconds int `json:"expires_in"`
OpenId string `json:"openid"` // nolint
Scope string `json:"scope"`
UnionId string `json:"unionid,omitempty"` // nolint
}
UserAccessToken access token for user.
type UserInfo ¶
type UserInfo struct {
Subscribe int `json:"subscribe,omitempty"`
Language string `json:"language,omitempty"`
OpenId string `json:"openid,omitempty"` // nolint
UnionId string `json:"unionid,omitempty"` // nolint
Nickname string `json:"nickname,omitempty"`
Sex int `json:"sex,omitempty"`
City string `json:"city,omitempty"`
Country string `json:"country,omitempty"`
Province string `json:"province,omitempty"`
HeadImageUrl string `json:"headimgurl,omitempty"` // nolint
SubscribeTime int64 `json:"subscribe_time,omitempty"`
Remark string `json:"remark,omitempty"`
GroupId int `json:"groupid,omitempty"` // nolint
}
UserInfo store user information.
type Weixin ¶
type Weixin struct {
// contains filtered or unexported fields
}
Weixin instance
func NewWithUserData ¶
NewWithUserData create data with userdata.
func (*Weixin) AddTemplate ¶
AddTemplate used to add template.
func (*Weixin) BatchGetMaterial ¶
BatchGetMaterial used to batch get Material.
func (*Weixin) CreateHandlerFunc ¶
func (wx *Weixin) CreateHandlerFunc(w http.ResponseWriter, r *http.Request) http.HandlerFunc
CreateHandlerFunc used to create handler function.
func (*Weixin) CreateMenu ¶
CreateMenu used to create custom menu.
func (*Weixin) CreateQRLimitScene ¶
CreateQRLimitScene used to create QR limit scene.
func (*Weixin) CreateQRLimitSceneByString ¶
CreateQRLimitSceneByString used to create QR limit scene by str.
func (*Weixin) CreateQRScene ¶
CreateQRScene used to create QR scene.
func (*Weixin) CreateQRSceneByString ¶
CreateQRSceneByString used to create QR scene by str.
func (*Weixin) CreateRedirectURL ¶
CreateRedirectURL used to create redirect url
func (*Weixin) DownloadMedia ¶
DownloadMedia used to download media with media.
func (*Weixin) DownloadMediaToFile ¶
DownloadMediaToFile used to download media and save to local file.
func (*Weixin) GetAccessToken ¶
func (wx *Weixin) GetAccessToken() AccessToken
GetAccessToken read access token.
func (*Weixin) GetAppSecret ¶
GetAppSecret return app secret.
func (*Weixin) GetJsAPITicket ¶
GetJsAPITicket used to get js api ticket.
func (*Weixin) GetUserAccessToken ¶
func (wx *Weixin) GetUserAccessToken(code string) (*UserAccessToken, error)
GetUserAccessToken used to get open id
func (*Weixin) GetUserInfo ¶
GetUserInfo used to get user info
func (*Weixin) HandleFunc ¶
func (wx *Weixin) HandleFunc(pattern string, handler HandlerFunc)
HandleFunc used to register request callback.
func (*Weixin) JsSignature ¶
JsSignature used to sign js url.
func (*Weixin) PostTemplateMessage ¶
func (wx *Weixin) PostTemplateMessage(touser string, templateid string, url string, data TmplData, miniprogram TmplMiniProgram) (int64, error)
PostTemplateMessage used to post template message.
func (*Weixin) PostTemplateMessageMiniProgram ¶
PostTemplateMessageMiniProgram 兼容模板消息跳转小程序
func (*Weixin) RefreshAccessToken ¶
func (wx *Weixin) RefreshAccessToken()
RefreshAccessToken update access token.
func (*Weixin) ServeHTTP ¶
func (wx *Weixin) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP used to process weixin request and send response.
func (*Weixin) SetEncodingAESKey ¶
SetEncodingAESKey set AES key
func (*Weixin) SetTemplateIndustry ¶
SetTemplateIndustry used to set template industry.
func (*Weixin) UploadMedia ¶
UploadMedia used to upload media with media.

