Skip to content

Repository files navigation

WeChat SDK

Build StatusGo Report CardGoDoc

微信SDK的golang实现,短小精悍,同时兼容【企业号/服务号/订阅号/小程序】

快速开始

5行代码,链式消息,快速开启微信API示例:

package main
import (
"net/http""github.com/esap/wechat"// 微信SDK包
)
funcmain() {
wechat.Debug=truewechat.Set("yourToken", "yourAppID", "yourSecret", "yourAesKey")
http.HandleFunc("/", WxHandler)
http.ListenAndServe(":9090", nil)
}
funcWxHandler(w http.ResponseWriter, r*http.Request) {
wechat.VerifyURL(w, r).NewText("这是客服消息").Send().NewText("这是被动回复").Reply()
}

配置方式

  • 使用默认实例
// 不带aesKey则为明文模式wechat.Set("token", "appId", "secret")
// 带aesKey则为密文模式wechat.Set("token", "appId", "secret", "aesKey")
// 企业号自动配置为密文模式wechat.SetEnt("token", "appId", "secret", "aesKey", "agentId")
  • 创建其他实例,密文模式
// 创建公众号实例(服务号/订阅号/小程序)app:=wechat.New("token", "appId", "secret", "aesKey")
// 创建企业号实例app:=wechat.New("token", "appId", "secret", "aesKey", "agentId")
// 实例化后其他操作ctx:=app.VerifyURL(w, r)
ctx.NewText("这是客服消息").Send().NewText("这是被动回复").Reply()

消息管理

  • 通常将wechat.VerifyURL(http.ResponseWriter, *http.Request)嵌入http handler

该函数返回*wechat.Context基本对象,其中的Msg为用户消息:

// 混合用户消息,业务判断的主体typeWxMsgstruct {
XMLName xml.Name`xml:"xml"`ToUserNamestringFromUserNamestringCreateTimeint64MsgTypestringContentstring// textMsgIdint64AgentIDint// corpPicUrlstring// imageMediaIdstring// image/voice/video/shortvideoFormatstring// voiceRecognitionstring// voiceThumbMediaIdstring// videoLocation_Xfloat32`xml:"Latitude"`// locationLocation_Yfloat32`xml:"Longitude"`// locationPrecisionfloat32// LOCATIONScaleint// locationLabelstring// locationTitlestring// linkDescriptionstring// linkUrlstring// linkEventstring// eventEventKeystring// eventTicketstringScanCodeInfostruct {
ScanTypestringScanResultstring
}
}

回复消息

回复消息有两种方式:

  • 被动回复,采用XML格式编码返回(Reply);

  • 客服消息,采用json格式编码返回(Send);

  • 两种方式都可先调用*wechat.Context对象的New方法创建消息,然后调用Reply()或Send()。

  • 支持链式调用,但Reply()只有第一次有效。

ctx.NewText("正在查询中...").Reply()
ctx.NewText("客服消息1").Send().NewText("客服消息2").Send()
  • 被动回复可直接调用ReplySuccess(),表示已收到,然后调用客服消息。

文本消息

ctx.NewText("content")

图片/语言/文件消息

// mediaID 可通过素材管理-上上传多媒体文件获得ctx.NewImage("mediaID")
ctx.NewVoice("mediaID")
// 仅企业号支持ctx.NewFile("mediaID")

视频消息

ctx.NewVideo("mediaID", "title", "description")

音乐消息

ctx.NewMusic("thumbMediaID","title", "description", "musicURL", "hqMusicURL")

图文消息

// 先创建三个文章art1:=wechat.NewArticle("拥抱AI,享受工作",
"来自村长的ESAP系统最新技术分享",
"http://ylin.wang/img/esap18-1.png",
"http://ylin.wang/2017/07/13/esap18/")
art2:=wechat.NewArticle("用企业微信代替pda实现扫描入库",
"来自村长的ESAP系统最新技术分享",
"http://ylin.wang/img/esap17-2.png",
"http://ylin.wang/2017/06/23/esap17/")
art3:=wechat.NewArticle("大道至简的哲学",
"来自村长的工作日志",
"http://ylin.wang/img/golang.jpg",
"http://ylin.wang/2017/01/29/log7/")
// 打包成新闻ctx.NewNews(art1, art2, art3)

License

MIT

About

微信SDK的golang实现,短小精悍,同时兼容【企业号/服务号/订阅号/小程序】

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages