在我自己的在线客服系统项目(唯一客服)中,实现了对接微信公众号的功能,并且可以调用发送模板消息接口

下面是一些简化后的代码,供大家参考

引入的包是这些

    "github.com/silenceper/wechat/v2""github.com/silenceper/wechat/v2/cache"offConfig "github.com/silenceper/wechat/v2/officialaccount/config""github.com/silenceper/wechat/v2/officialaccount/message"workConfig "github.com/silenceper/wechat/v2/work/config"

使用了内存存储access_token

var memory = cache.NewMemory()

路由部分

v2.POST("/wechatTemplate", controller.PostSendWechatTemplate)

控制器部分

//发送微信模板消息
func PostSendWechatTemplate(c *gin.Context) {entId := c.PostForm("ent_id")openid := c.PostForm("openid")templateId := c.PostForm("template_id")url := c.PostForm("url")keyword1 := c.PostForm("keyword1")keyword2 := c.PostForm("keyword2")keyword3 := c.PostForm("keyword3")wechatConfig, _ := lib.NewWechatLib(entId)msgData := make(map[string]*message.TemplateDataItem)msgData["keyword1"] = &message.TemplateDataItem{Value: keyword1,Color: "",}msgData["keyword2"] = &message.TemplateDataItem{Value: keyword2,Color: "",}msgData["keyword3"] = &message.TemplateDataItem{Value: keyword3,Color: "",}msgData["remark"] = &message.TemplateDataItem{Value: models.FindConfig("WechatTemplateRemark"),Color: "",}msg := &message.TemplateMessage{ToUser:     openid,Data:       msgData,TemplateID: templateId,URL:        url,}_, err := SendWechatTemplate(wechatConfig, msg)if err != nil {c.JSON(200, gin.H{"code": 400,"msg":  err.Error(),})return}c.JSON(200, gin.H{"code": 200,"msg":  "ok",})
}

函数部分

//发送微信模板消息
func SendWechatTemplate(wechatConfig *lib.Wechat, msg *message.TemplateMessage) (bool, error) {if wechatConfig == nil {return false, errors.New("该企业未配置appid等公众号资料")}if msg.TemplateID == "" || msg.ToUser == "" {return false, errors.New("openid或templateId不存在")}wc := wechat.NewWechat()cfg := &offConfig.Config{AppID:     wechatConfig.AppId,AppSecret: wechatConfig.AppSecret,Token:     wechatConfig.Token,//EncodingAESKey: "xxxx",Cache: memory,}officialAccount := wc.GetOfficialAccount(cfg)template := officialAccount.GetTemplate()msgId, err := template.Send(msg)if err != nil {return false, err}log.Println("发送微信模板消息:", msgId, err, msg.ToUser)return true, nil
}

我的公众号相关配置存储到了数据库里,根据ent_id去查的,这里大家可以酌情修改

上面只是我的代码片段,并不能直接使用,参考后进行修改

【Golang】golang实现发送微信服务号模板消息相关推荐

  1. 微信服务通知消息找回_第三方平台微信服务号模板消息怎么发送

    使用公众号平台模板消息功能,无法发送模板消息,如果想要发送模板消息,可以用第三方平台微号帮功能模板消息群发实现,也可自己根据公众号平台的接口开发实现,均可以为微信服务号发送模板消息,且发送模板消息不占 ...

  2. 微信服务号模板消息推送

    一.微信服务号新建模板 二.建立模板消息pojo import java.util.HashMap; import net.sf.json.JSONObject;public class Templa ...

  3. Golang实现发送微信公众号模板消息(每日一句和天气预报)

    Golang实现发送微信模板消息(每日一句和天气预报) 前言 本文是基于https://www.cnblogs.com/connect/p/python-wechat-iciba.html 这篇博客写 ...

  4. C# 微信服务号模板消息中如何换行

    回复普通消息时,使用 \n 即可换行,但是如果想在模板消息中换行,使用 \n 会出现错误 data format error 解决办法是,使用 \\n 当初百度了半天没答案,今天突发奇想,歪打正着.应 ...

  5. 公众号获取用户手机号_微信公众号模板消息软件怎么指定用户发送?

    使用公众平台模板消息功能,仅支持添加模板和更改所在行业,如果想要实现更多功能效果,可以通过微号帮平台的模板消息群发功能实现,也可以自己根据公众平台的开发接口编程实现功能,均能实现微信公众号模板消息指定 ...

  6. 微信服务号模版消息重复发送或消息接收不到的解决方案

    微信服务号模版消息重复发送或消息接收不到的解决方案 问题描述 解决思路 问题描述 前段时间开发的服务号,有一个功能是主动向用户推送消息,经查看文档后,发现模版消息可以实现,于是按照文档向微信申请消息模 ...

  7. 公众平台模板消息所在行业_微信公众号模板消息功能怎么快速推送?

    公众号平台上模板消息功能仅支持添加模板和更改所在行业,不支持模板消息推送,如果想要实现更多功能效果,可以使用微号帮平台的模板消息群发功能实现,也可以通过公众号平台的接口自己开发实现功能,均可以达到微信 ...

  8. 微信公众号-模板消息管理

    微信公众号-模板消息管理 通过模板消息接口,公众号能向关注其账号的用户发送预设模板的消息.模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通 ...

  9. 公众平台模板消息所在行业_第三方工具微信公众号模板消息群发如何操作?

    当下,公众平台模板消息功能仅支持添加模板,修改所在行业,如果想要群发模板消息,可以自己根据公众平台的接口编程实现,也可通过微号帮平台的模板消息群发功能实现,均可以让微信公众号群发模板消息,模板消息即按 ...

最新文章

  1. 学密码学一定得学程序 KMP
  2. 鸿蒙2.0开始推送,华为OS首次登陆手机,亮点槽点都在这里
  3. 打印菱形(Java)
  4. clistctrl获取选中行数据_Power Query基础6:筛选、排序、删重复行
  5. plsql只提交存储过程里的事务_plsql 存储过程 事务
  6. 抄底指标:秘密买卖点
  7. 深入学习 Redis(1):Redis 内存模型
  8. python groupby用法_Python数据分析黑色星期五-知识点整理
  9. TortoiseGit 添加ssh key
  10. poj 3280 Cheapest Palindrome (dp)
  11. Introduction to Computer Networking学习笔记(二十九):DHCP
  12. 百度离线地图-Vue
  13. android桌面小部件开发
  14. 电信IHO-3000机顶盒高安版 悦ME刷机固件
  15. 职业生涯规划——2019
  16. ID卡、IC卡,RFID卡,NFC卡的简单介绍
  17. QQ返利当当特惠活动(10.26~11.4)
  18. 【已解】英雄联盟lol撸啊撸“寻找对局”按钮无法点击,开不了赛解决方法
  19. linux7 清屏,CentOS 清屏命令clear的讲解
  20. redis加锁、解锁

热门文章

  1. 5G主要技术场景与六大关键技术
  2. 二、Nacos下载和安装
  3. 第一台鸿蒙手机是,华为够谨慎的,第1台预装鸿蒙系统的,是一台4G手机?
  4. 二进制的位数,字节、字符
  5. u8g2 stm32移植笔记
  6. QQ2011 Beta3透明皮肤主界面修改详细教程
  7. TASKCTL4.1不同版本下载
  8. 商家使用会员卡有什么好处?手机app即可办理实体会员卡!
  9. 阿西莫夫 - 神们自己(2015年6月23日)
  10. Java入门 第十二节(一) API