Documentation
¶
Overview ¶
Package qy provides accesstoken fetch functions for wechat qy dev
Package qy provides encrpytmsg and decrpytmsg for qy wechat message.
Package qy provides menu create opertations.
Package qy provides functions for handling the received messages.
Index ¶
- Constants
- func CreateMenu(menuLayout []byte, accessToken, agentID string) error
- func DecryptMsg(cipherText, encodingAESKey string) ([]byte, int, string, error)
- func EncryptMsg(msg []byte, corpID string, encodingAESKey string) (string, error)
- func FetchAccessToken(corpID, corpSecret string) (string, float64, error)
- func NewRecvHandler(corpID, token, encodingAESKey string) pb.RecvHandler
- func SendMsg(accessToken string, pkg interface{}) error
- func ValidateSignature(signature, token, timestamp, nonce, msgEncrypt string) bool
- func ValidateURL(signature, token, timestamp, nonce, cipherEchoStr, encodingAESKey string) (bool, []byte)
- type Article
- type Articles
- type RecvEnterAgentDataPkg
- type RecvHTTPReqBody
- type RecvHTTPRespBody
- type RecvImageDataPkg
- type RecvLocationDataPkg
- type RecvLocationEventDataPkg
- type RecvMenuEventDataPkg
- type RecvRespTextDataPkg
- type RecvSubscribeEventDataPkg
- type RecvTextDataPkg
- type RecvVideoDataPkg
- type RecvVoiceDataPkg
- type SendMsgImagePkg
- type SendMsgNewsPkg
- type SendMsgTextPkg
Examples ¶
Constants ¶
const ( // Msg type TextMsg = "text" ImageMsg = "image" VoiceMsg = "voice" VideoMsg = "video" LocationMsg = "location" EventMsg = "event" // Event type SubscribeEvent = "subscribe" UnsubscribeEvent = "unsubscribe" LocationEvent = "LOCATION" MenuClickEvent = "click" MenuViewEvent = "view" ScanCodePushEvent = "scancode_push" ScanCodeWaitEvent = "scancode_waitmsg" PicSysPhotoEvent = "pic_sysphoto" PicPhotoOrAlbumEvent = "pic_photo_or_album" PicWeiXinEvent = "pic_weixin" LocationSelectEvent = "location_select" EnterAgentEvent = "enter_agent" )
Variables ¶
This section is empty.
Functions ¶
func CreateMenu ¶
Example ¶
package main
import (
"fmt"
"github.com/bigwhite/gowechat/qy"
)
const (
accessToken = "wx1234abcd"
layout = `{
"button": [
{
"name":"submenu1",
"subbutton": [
{
"name": "item1",
"type":"click",
"key":"s1-item1"
},
{
"name": "item2",
"type":"click",
"key":"s1-item2"
}
]
},
{
"name":"submenu2",
"subbutton": [
{
"name": "item1",
"type":"click",
"key":"s2-item1"
},
{
"name": "item2",
"type":"click",
"key":"s2-item2"
}
]
}
]
} `
agentID = "5"
)
func main() {
err := qy.CreateMenu([]byte(layout), accessToken, agentID)
fmt.Println(err)
}
Output: https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token=wx1234abcd&agentid=5 invalid access_token
func DecryptMsg ¶
DecryptMsg is used to decrpyt msg_encrypt in wechat qy request. it returns msg, msgLen, corpid, error. msg_encrypt = Base64_Encode( AES_Encrypt[random(16B) + msg_len(4B) + msg + $CorpID]).
func EncryptMsg ¶
EncryptMsg is used to encrpyt msg in wechat qy response or custom message. it returns msg_encrypt. msg_encrypt = Base64_Encode( AES_Encrypt[random(16B) + msg_len(4B) + msg + $CorpID]).
func FetchAccessToken ¶
FetchAccessToken could be used to fetch access token for wechat qy dev.
func NewRecvHandler ¶
func NewRecvHandler(corpID, token, encodingAESKey string) pb.RecvHandler
NewRecvHandler creates an instance of recvHandler which implements pb.RecvHandler interface.
func ValidateSignature ¶
ValidateSignature is used to validate the signature in request to figure out whether the http request come from wechat qy platform.
func ValidateURL ¶
Types ¶
type RecvEnterAgentDataPkg ¶
type RecvEnterAgentDataPkg struct {
pb.RecvBaseDataPkg
Event string
EventKey string
}
type RecvHTTPReqBody ¶
RecvHTTPReqBody is a unmarshall result for below xml data: <xml>
<ToUserName><![CDATA[toUser]]</ToUserName> <AgentID><![CDATA[toAgentID]]</AgentID> <Encrypt><![CDATA[msg_encrypt]]</Encrypt>
</xml>
type RecvHTTPRespBody ¶
type RecvHTTPRespBody struct {
XMLName xml.Name `xml:"xml"`
Encrypt pb.CDATAText
MsgSignature pb.CDATAText
TimeStamp int
Nonce pb.CDATAText
}
RecvHTTPResqBody is a source for marshalling below xml data: <xml>
<Encrypt><![CDATA[msg_encrypt]]></Encrypt> <MsgSignature><![CDATA[msg_signature]]></MsgSignature> <TimeStamp>timestamp</TimeStamp> <Nonce><![CDATA[nonce]]></Nonce>
</xml>
type RecvImageDataPkg ¶
type RecvImageDataPkg struct {
pb.RecvBaseDataPkg
PicURL string `xml:"PicUrl"`
MediaID string `xml:"MediaId"`
MsgID uint64 `xml:"MsgId"`
AgentID int
}
RecvImageDataPkg is a Image Message received from wechat platform.
type RecvLocationDataPkg ¶
type RecvLocationDataPkg struct {
pb.RecvBaseDataPkg
LocX float64 `xml:"Location_X"`
LocY float64 `xml:"Location_Y"`
Scale int
Label string
MsgID uint64 `xml:"MsgId"`
AgentID int
}
RecvLocationDataPkg is a Location Message received from wechat platform.
type RecvLocationEventDataPkg ¶
type RecvLocationEventDataPkg struct {
pb.RecvBaseDataPkg
Event string
Latitude float64
Longitude float64
Precision float64
AgentID int
}
RecvLocationEventDataPkg is a Location event Message received from wechat platform.
type RecvMenuEventDataPkg ¶
type RecvMenuEventDataPkg struct {
pb.RecvBaseDataPkg
Event string
EventKey string
AgentID int
}
RecvMenuEventDataPkg is a Menu Click event Message received from wechat platform.
type RecvRespTextDataPkg ¶
type RecvRespTextDataPkg struct {
pb.RecvRespBaseDataPkg
Content pb.CDATAText
}
type RecvSubscribeEventDataPkg ¶
type RecvSubscribeEventDataPkg struct {
pb.RecvBaseDataPkg
Event string
AgentID int
}
RecvSubscribeEventDataPkg is a Subscribe/Unsubscribe event Message received from wechat platform.
type RecvTextDataPkg ¶
type RecvTextDataPkg struct {
pb.RecvBaseDataPkg
Content string
MsgID uint64 `xml:"MsgId"`
AgentID int
}
RecvTextDataPkg is a Text Message received from wechat platform.
type RecvVideoDataPkg ¶
type RecvVideoDataPkg struct {
pb.RecvBaseDataPkg
MediaID string `xml:"MediaId"`
ThumbMediaID string `xml:"ThumbMediaId"`
MsgID uint64 `xml:"MsgId"`
AgentID int
}
RecvVideoDataPkg is a Video Message received from wechat platform.
type RecvVoiceDataPkg ¶
type RecvVoiceDataPkg struct {
pb.RecvBaseDataPkg
MediaID string `xml:"MediaId"`
Format string
MsgID uint64 `xml:"MsgId"`
AgentID int
}
RecvVoiceDataPkg is a Voice Message received from wechat platform.