1.获取模板

模版消息接口文档
https://mp.weixin.qq.com/advanced/tmplmsg?action=faq&token=746187024&lang=zh_CN
从公共模板库选择模板加入自己的模板库,如下模板:

模板按照Json格式如下:

{"touser": "OPENID","template_id": "ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY","url": "http://weixin.qq.com/download","topcolor": "#FF0000","data": {"first": {"value": "xxx酒店,贵酒店有2张订单等待处理","color": "#173177"},"unConfirmCount": {"value": "3","color": "#173177"},"waitAuditCount": {"value": "2","color": "#173177"},"todayCheckInCount": {"value": "4","color": "#173177"},"remark": {"value": "为保证客人入住正常,请及时处理","color": "#173177"}}
}

post请求
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

2.获取ACCESS_TOKEN

查看微信开发文档
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
get请求获取token:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

3.开发

Idea安装GsonFormatPlus插件

新建MessageTemplate,鼠标放在类中

按下Alt+s键,弹出GsonFormatPlus框,把消息模板对应的Json内容复制到左侧框中

点击ok

再点击OK
模板类就生成了。

import lombok.Data;
import lombok.NoArgsConstructor;@NoArgsConstructor
@Data
public class MessageTemplate {private String touser;private String template_id;private String url;private String topcolor;private DataDTO data;@NoArgsConstructor@Datapublic static class DataDTO {private FirstDTO first;private UnConfirmCountDTO unConfirmCount;private WaitAuditCountDTO waitAuditCount;private TodayCheckInCountDTO todayCheckInCount;private RemarkDTO remark;@NoArgsConstructor@Datapublic static class FirstDTO {private String value;private String color;}@NoArgsConstructor@Datapublic static class UnConfirmCountDTO {private String value;private String color;}@NoArgsConstructor@Datapublic static class WaitAuditCountDTO {private String value;private String color;}@NoArgsConstructor@Datapublic static class TodayCheckInCountDTO {private String value;private String color;}@NoArgsConstructor@Datapublic static class RemarkDTO {private String value;private String color;}}
}

测试demo

import com.fasterxml.jackson.databind.JsonNode;
import org.springblade.core.http.HttpRequest;
import org.springblade.core.tool.jackson.JsonUtil;public class SendWebChatMessage {public static void main(String[] args) {String tokenUrl = "https://api.weixin.qq.com/cgi-bin/token";    //get请求String grant_type = "client_credential";String appid = "wx3dc8b956af234fxx";String secret = "2d3820b8cc2d29ef265722xxcb759exx";//获取tokenStringBuilder sb = new StringBuilder();sb.append(tokenUrl);sb.append("?grant_type=" + grant_type);sb.append("&appid=" + appid);sb.append("&secret=" + secret);HttpRequest httpRequest = HttpRequest.get(sb.toString());JsonNode jsonNode = httpRequest.execute().asJsonNode();String  accessToken = jsonNode.get("access_token").asText();System.out.println("获取的accessToken为:" + accessToken);int expires_in = jsonNode.get("expires_in").asInt();System.out.println("获取的accessToken有效期为:" + expires_in);//构建消息发送JSON对象MessageTemplate messageTemplate = new MessageTemplate();messageTemplate.setTemplate_id("LZQYI4NgxFzBwRYtE04KiaSt8bR71xfn8x5rvp6bmxx");messageTemplate.setTopcolor("#FF0000");messageTemplate.setTouser("oMbxz53a9_7gVpWjpb2ApxxGByxx");messageTemplate.setUrl("www.baidu.com");  //点击通知消息,跳转的页面MessageTemplate.DataDTO dataDTO = new MessageTemplate.DataDTO();MessageTemplate.DataDTO.FirstDTO firstDTO = new MessageTemplate.DataDTO.FirstDTO();firstDTO.setColor("#173177");firstDTO.setValue("xxx酒店,贵酒店有2张订单等待处理");MessageTemplate.DataDTO.UnConfirmCountDTO unConfirmCountDTO = new MessageTemplate.DataDTO.UnConfirmCountDTO();unConfirmCountDTO.setColor("#173177");unConfirmCountDTO.setValue("3");MessageTemplate.DataDTO.WaitAuditCountDTO waitAuditCountDTO = new MessageTemplate.DataDTO.WaitAuditCountDTO();waitAuditCountDTO.setColor("#173177");waitAuditCountDTO.setValue("2");MessageTemplate.DataDTO.TodayCheckInCountDTO todayCheckInCountDTO = new MessageTemplate.DataDTO.TodayCheckInCountDTO();todayCheckInCountDTO.setColor("#173177");todayCheckInCountDTO.setValue("4");MessageTemplate.DataDTO.RemarkDTO remarkDTO = new MessageTemplate.DataDTO.RemarkDTO();remarkDTO.setColor("#173177");remarkDTO.setValue("为保证客人入住正常,请及时处理");dataDTO.setFirst(firstDTO);dataDTO.setUnConfirmCount(unConfirmCountDTO);dataDTO.setWaitAuditCount(waitAuditCountDTO);dataDTO.setTodayCheckInCount(todayCheckInCountDTO);dataDTO.setRemark(remarkDTO);messageTemplate.setData(dataDTO);//发送消息HttpRequest sendRequest = HttpRequest.post("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken);sendRequest.bodyString(JsonUtil.toJson(messageTemplate)); //消息的json对象转Json放在请求的body体里面JsonNode execute = sendRequest.execute().asJsonNode();String errcode = execute.get("errcode").asText();String errmsg = execute.get("errmsg").asText();System.out.println(errcode + errmsg);}
}

控制台消息

获取的accessToken为:48_UcDsmGvqBEJLWWiaPgfJgeIgUFq0L7YM3C7OL34ab4Uo-uaiEBO6THHjGot1WCXZ_zA2SNcn15Lfjy-ddyefB15MNzb_OcWyL9jtvvkP99d00DwKX-_sINsNx9PkSsoofaja5JoF-djDdNllYHFfADACLJ
获取的accessToken有效期为:7200
0ok

公众号收到的通知如下图:

微信开发:微信公众号给粉丝推送通知消息(模板消息)相关推荐

  1. 小程序开发与公众号用户关联推送消息

    最近做了一个类似于日程提醒的小程序,需要把用户语音识别出的日程或提醒按照设置的提醒日期通过微信公众号推送给对应的用户进行提醒这样子.这是需求背景. 这个项目我已经做完了,但是中间遇到很多坑,所以想出篇 ...

  2. 微信小程序云开发通过服务号给用户推送模板消息

    主要参考下面两个文章 1.云函数接收公众号消息推送 | 微信开放社区 ​​​​​​2.微信小程序通过公众号(服务号)推送通知或提醒步骤及代码(一,获取推送前所需信息)_微信小程序推送服务通知_庆登登登 ...

  3. 如何在微信公众号的文章推送中展示bilibili的视频

    0x00  需求背景: 我们学院举办了一个短视频设计大赛,需要在官方公众号里进行线上投票,选出大家最喜欢的视频. 然而微信公众号的文章推送中,限制了每篇文章只能上传三部视频,而我们需要把三十部作品都放 ...

  4. 通过python实现企业微信公众号链接+图文推送

    背景:通过python实现企业微信公众号链接+图文推送 目的:实现点击即看到内容,用更符合用户查看公众号消息的习惯推送消息 步骤: 1.创建企业微信公众号(应用) 2.确定推送内容(BI报表链接)+标 ...

  5. 观察者模式--微信公众号文章的推送

    ​观察者模式 学习容易,坚持不易,如果你坚持看完,会发现设计模式如此简单~ 目录 引子 认识观察者模式 我们先来看看微信公众号和用户之间的关注是怎么回事? 发布者+订阅者=观察者模式 观察者模式的原理 ...

  6. 微信公众号实现无限制推送模板消息之免开发的玩法!

    不知道大家会不会因为服务号4次推送机会用完,又遇到老板施压,让发布重要消息,而苦恼? 经过我苦心搜索,找到了一个解决方法!原理就是,利用公众号模板消息,给粉丝推送. 作为运营同学,大多是不会技术的,所 ...

  7. 微信公众号接收事件推送

    功能 当开发者在微信开放平台启用了服务器配置后,在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信 ...

  8. 微信公众号之验证码推送(spring-boot+测试号)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.验证码推送使用场景 二.测试号中消息模板的搭建 1.条件测试 2.配置消息模板 服务端环境搭建 四.实现验证码推送 ...

  9. 【超简单5分钟~最新版】微信公众号早安定时推送 带天气、纪念日、生日、定时推送等(附4.0最新版)

    微信公众号早安推送 无计算机基础,5分钟即设置好 (定时推送 及 最新版 在文章末) 效果如图: 操作步骤: 1.百度搜索 微信公众平台测试号申请,自己扫码登陆 https://mp.weixin.q ...

  10. 微信公众号每日早安推送,给女朋友的浪漫礼物

    做一个程序员给女朋友的浪漫礼物吧. 最终效果 GitHub地址: https://github.com/ynwynw/weixinPush-public 所用知识点 springboot实现java后 ...

最新文章

  1. 鴻雁 Anser cygnoides
  2. 53.C#--多线程
  3. SWIFT问题很大,第4家受害银行浮出水面
  4. 淘宝特价版月活过亿背后,下沉市场正进入C2M时代
  5. jQuery EasyUI API 中文文档 - 可调整尺寸
  6. ubuntu 10.04的git安装和使用
  7. 3_kicad 5.0_PCB计算器(稳压器,布线宽度,电气间距,传输线路,RF衰减器,颜色代码,电路板类别)...
  8. access数据库应用系统客观题_Access数据库程序设计模拟题
  9. [含论文+答辩PPT+任务书+中期检查表+源码等]S2SH洋酒销售系统|商城
  10. 在腾讯云开通短信验证服务并完成群发消息测试
  11. Numpy 笔记(二): 多维数组的切片(slicing)和索引(indexing)
  12. 【编译原理】【实验】THOMPSON 算法的实现
  13. linux resolv.conf 重启,Ubuntu关于修改resolv.conf重启失效的问题
  14. 葫芦娃手游服务器未响应,葫芦娃手游闪退解决方法_葫芦娃手游闪退原因_玩游戏网...
  15. 初学安卓之二维码的简单实现
  16. ClickHouse连接ZK频繁超时处理案例
  17. 神啊,请让我丑一点吧
  18. 2019-6-27-WPF-如何给定两个点画出一条波浪线
  19. 计算机存储周期越长运算速度,计算机组成原理作业答案
  20. Ogre个人初步学习总结

热门文章

  1. ubuntu server 20.04 配置无线wifi网络并设置固定ip公司连接家里的linux服务器配置
  2. 电脑主板详细介绍(细图!!)
  3. 计算机主板清理,电脑主板脏了如何清洗电脑主板才是正确
  4. Java多线程篇--threadlocal和线程池
  5. 2021-2027全球与中国外部谷仓门市场现状及未来发展趋势
  6. linux下twm切换gn,如何让vnc控制由默认的twm界面改为gnome?
  7. 证明:$(g\circ f = e_X)\Rightarrow(g是满射)\wedge(f是单射)$
  8. idea2019 换背景
  9. java服务报错连接超时
  10. BZOJ 1189: [HNOI2007]紧急疏散evacuate|网络流|二分答案