Ai
1 Star 0 Fork 0

五度曲橙/golang-wechat-sdk

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
subscribe.go 2.90 KB
一键复制 编辑 原始数据 按行查看 历史
五度曲橙 提交于 2021-06-11 11:03 +08:00 . first commit
package message
import (
"fmt"
"gitee.com/qucheng/golang-wechat-sdk/officialaccount/context"
"gitee.com/qucheng/golang-wechat-sdk/util"
)
const (
subscribeSendURL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/bizsend"
subscribeTemplateListURL = "https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate"
)
//Subscrib 订阅消息
type Subscrib struct {
*context.Context
}
//NewSubscrib 实例化
func NewSubscrib(context *context.Context) *Subscrib {
tpl := new(Subscrib)
tpl.Context = context
return tpl
}
//SubscribeMessage 发送的订阅消息内容
type SubscribeMessage struct {
ToUser string `json:"touser"` // 必须, 接受者OpenID
TemplateID string `json:"template_id"` // 必须, 模版ID
Page string `json:"page,omitempty"` // 可选, 跳转网页时填写
Data map[string]*SubscribeDataItem `json:"data"` // 必须, 模板数据
MiniProgram struct {
AppID string `json:"appid"` //所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系)
PagePath string `json:"pagepath"` //所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar)
} `json:"miniprogram"` //可选,跳转至小程序地址
}
//SubscribeDataItem 模版内某个 .DATA 的值
type SubscribeDataItem struct {
Value string `json:"value"`
}
//Send 发送订阅消息
func (tpl *Subscrib) Send(msg *SubscribeMessage) (err error) {
var accessToken string
accessToken, err = tpl.GetAccessToken()
if err != nil {
return
}
uri := fmt.Sprintf("%s?access_token=%s", subscribeSendURL, accessToken)
response, err := util.PostJSON(uri, msg)
if err != nil {
return
}
return util.DecodeWithCommonError(response, "SendSubscribMessage")
}
// PrivateSubscribItem 私有订阅消息模板
type PrivateSubscribItem struct {
PriTmplID string `json:"priTmplId"` // 添加至帐号下的模板 id,发送订阅通知时所需
Title string `json:"title"` //模版标题
Content string `json:"content"` //模版内容
Example string `json:"example"` //模板内容示例
SubType int `json:"type"` //模版类型,2 为一次性订阅,3 为长期订阅
}
type resPrivateSubscribList struct {
util.CommonError
SubscriptionList []*PrivateSubscribItem `json:"data"`
}
//List 获取私有订阅消息模板列表
func (tpl *Subscrib) List() (templateList []*PrivateSubscribItem, err error) {
var accessToken string
accessToken, err = tpl.GetAccessToken()
if err != nil {
return
}
uri := fmt.Sprintf("%s?access_token=%s", subscribeTemplateListURL, accessToken)
var response []byte
response, err = util.HTTPGet(uri)
if err != nil {
return
}
var res resPrivateSubscribList
err = util.DecodeWithError(response, &res, "ListSubscription")
if err != nil {
return
}
templateList = res.SubscriptionList
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/qucheng/golang-wechat-sdk.git
git@gitee.com:qucheng/golang-wechat-sdk.git
qucheng
golang-wechat-sdk
golang-wechat-sdk
a0c205eb99dc

搜索帮助