微信开放之模板消息

news/2025/6/6 20:28:37

微信开放之模板消息

正如许多推送一样,微信也友好的给广大开发者提供了“模板消息”,比推送更好的是,它能借助海量用户的微信平台直接通过服务号以短消息形式传达给用户,大大提高了运营的可能性。比如我们现在可以完全抛开银行卡的短信服务,通过相关银行提供服务号绑定银行卡,当发生交易的时候同样的能收到交易详情短消息,确实是方便了不少!

 

上一篇讲到了获取和缓存access_token,也成功配置了jssdk授权,这些前置条件都准备好了,那么同样的实现一些功能就很快了,这回具体来说说模板消息的发送

 

公众号平台配置

功能-我的模板(或者去模块库中搜索),这里不涉及到代码,不细说

 

 后台restful

实际项目中肯定会存在多种类型的模板,那么肯定需要做一些共用代码封装,我这里 以保单出单 这个模板为例

1,对应模板的信息

2.controller

复制代码
  /*** 发送模板消息* @return*/@RequestMapping(value = "/sendTemplateMessage", method = RequestMethod.POST)public @ResponseBody HttpResult sendTemplateMessage(@RequestParam String dataJson){  HttpResult hr = null;LOGGER.info("RestFul of sendTemplateMessage parameters dataJson:{}",dataJson);try {hr = wechatService.sendTemplateMessage(dataJson);LOGGER.info("Send template message is successful!",hr);} catch (Exception e) {LOGGER.error("RestFul of sendTemplateMessage is error:{}",e);}return hr;}
复制代码

因为我这里是一个通用的接口,不同的模板可能传的参数都不同,时间缘故也没有写持久化bean对象,就用了一个json字符串接收

 

3.serveice

直接通过httpclient调用微信提供的POST请求,https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={ACCESS_TOKEN}

  //保单出单通知@Value("${TEMPLATE_THREE}")private String TEMPLATE_THREE;

 

复制代码
  /*** 发送模板消息* @param dataJson* @return* @throws IOException*/public HttpResult sendTemplateMessage(String dataJson) throws IOException{String doUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+getBaseAccessToken();JSONObject data = JSONObject.parseObject(dataJson);Object touser = data.get("touser");//接收者openid
     String templateId = TEAMLATE_THREE;//模板IDObject url = data.get("url");//模板跳转链接,如果置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)。
Object first = data.getString("first");//标题Object remark = data.getString("remark");//备注Object keyword1 = data.getString("keyword1");Object keyword2 = data.getString("keyword2");Object keyword3 = data.getString("keyword3");JSONObject parentJSON = new JSONObject();parentJSON.put("touser", touser);
     parentJSON.put("template_id", templateId);parentJSON.put("url", url);JSONObject json = new JSONObject();json.put("first", toJson(first));json.put("keyword1", toJson(keyword1));//对应的车辆信息json.put("keyword2", toJson(keyword2));//产品信息json.put("keyword3", toJson(keyword3));//出单状态json.put("remark", toJson(remark));parentJSON.put("data", json);//模板数据HttpResult rs = null;try {rs = apiService.doPostJson(doUrl,parentJSON.toJSONString());} catch (Exception e) {LOGGER.error("RestFul of doLogin is error:{}",e);}return rs;}public JSONObject toJson(String value){JSONObject json = new JSONObject();json.put("value", value);json.put("color", "#173177");//消息字体颜色return json;}
复制代码

为了增强代码可读性,关键字的地方我都添加了注释,那么到这里,后台基本完成,下面我通过一个接口调用工具Advanced REST client来测试一下

数据:

复制代码
{"touser": "otjo0wXJZipXdFjxzwDB3DZUjs44","templateType": "3","url": "www.liliangel.cn","first": {"value": "测试发送模板消息3","color": "#173177"},"keyword1": {"value": "testCar","color": "#173177"},"keyword2": {"value": "testPro","color": "#173177"},"keyword3": {"value": "successful","color": "#173177"},"remark": {"value": "备注","color": "#173177"}
}
复制代码

说明:我这里的数据结构是经过了一层json封装的,详细的格式可以参考微信官方文档及模板详情!

 

成功:

到这里我们已经完成了模板消息的接入,具体会不会比常用的推送更好? 会不会取代手机短信? 看怎么去运营,发挥你的想象,将微信提供的服务最大程度利用!


https://dhexx.cn/news/show-3664258.html

相关文章

提醒 TickTick v2.8.5.4 最新版

2019独角兽企业重金招聘Python工程师标准>>> 名称:提醒 TickTick v2.8.5.4 安卓最新版 版本:v2.8.5.4 大小:8.42 MB 软件语言:中文简体 软件授权:免费版 系统要求:Android 名称:提醒…

ytalk项目计划文档

引言 :眼看着 今年6月份就要毕业了,自己的毕业设计项目连后台的数据库设计都没有完成,自个心里那个捉急啊,为了规范一下自己的毕业设计项目安排,也克制克制自己爱拖拉的习惯,把自个的项目的计划写了下来&am…

Centos6.5更新e1000网卡驱动

导读在工作过程中经常遇到linux的操作系统网络不正常的情况,以前没有注意到,今天查看系统日志发现原来是网络驱动的问题。索性直接更新系统,更新网卡问题:linux系统经常出现断网的情况,重启之后系统恢复正常在断网时候…

薛逸凡计算机生物学,北京大学有一专业,11年只培养出11位学子,惹得无数人不敢报名...

原标题:北京大学有一专业,11年只培养出11位学子,惹得无数人不敢报名三更灯火五更鸡,正是男儿读书时。黑发不知勤学早,白首方悔读书迟。——《劝学》历史的教训告诉我们落后就要挨打,知识是推动一个社会发展…

6款开源中间件

Middleware tends to be the unsung hero of technical infrastructure. Middleware doesn’t prompt great debates, like Windows vs. Apple vs. Linux OS debates of years past, and there are no TV ads for middleware. Yet middleware – the software that sits betwee…

掌控时间

如何提高自己对时间的掌控力,是作为一个聪明人,必备的能力。如果连这都做不到,就更没有能力去做好其他事情。 大部分人做事情不专注,是因为焦虑自己的时间是否合理分配,最重要的事情是不是能做完、做好。 如果增加对时…

解读《TCP/IP详解》(卷1):05章:RARP(逆地址解析协议)

上一节,我们讲到的ARP协议是主机知道自己的IP来查询自己的硬件地址。但是不同于PC,网络上有一种设备(比如无盘工作站)没有本地磁盘,因此无法在系统引导时获得自己的IP地址。但是这些设备由网络接口厂家配置了唯一的硬件…

利用计算机设计轴对称图案,“轴对称图形”信息技术应用设计与分析|轴对称图形有哪些图片...

【教学内容】义务教育课程标准实验教科书《数学》(苏教版)三年级下册。   【教学设计】   一、初步感知轴对称现象   1.初步感知。   (1)出示天安门、奖杯和飞机的图片,让学生说一说分别是什么物体。(2)引导学生思考并初步发现:这些物体的两边各…

CocoaPods安装使用及配置私有库

2019独角兽企业重金招聘Python工程师标准>>> 1.安装ruby环境,添加淘宝ruby镜像 $ gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 $ gem sources -a http://ruby.taobao.org/ Error fetching http://ruby.taobao.org/: bad response Not…

多维度论怎样在日常中提升

昨晚有点心事,失眠了一个晚上,也想了一个晚上,到底怎样在公司中使用技术以及自己怎样在日常中提升,之间要怎样的权衡利弊,这个问题思考了很久。现在分享出来大家一起来讨论一下 一、从老板的角度从老板的角度上来看&am…