一、登陆微信公众号,选中模板消息,添加需要的模板,

二、在 .properties 配置文件中,记录模板ID

三、模板文件配置,
-SendTemplateMessageController

public class SendTemplateMessageController {/*** 发送模板消息sendTemplateMessage* 小程序模板消息,发送服务通知* @param touser 接收者(用户)的 openid* @param template_id 所需下发的模板消息的id* @param page 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。* @param formid 表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id* @return* @throws UnsupportedEncodingException */public static JSONObject sendTemplateMessage(String touser, String template_id, String page, String formid, Map<String, TemplateData> map) {String accessToken = getAccessToken();SendTemplateMessage sendTemplateMessage = new SendTemplateMessage();//拼接数据sendTemplateMessage.setTouser(touser);sendTemplateMessage.setTemplate_id(template_id);sendTemplateMessage.setPage(page);sendTemplateMessage.setForm_id(formid);sendTemplateMessage.setData(map);sendTemplateMessage.setEmphasis_keyword("");String json =  JSONObject.toJSONString(sendTemplateMessage);String ret = sendPost(MyJwtConfigurer.geSend_template_message()+accessToken, json);return JSON.parseObject(ret);}public static String getAccessToken(){String param = "grant_type=client_credential&appid="+MyJwtConfigurer.getAppid()+"&secret="+MyJwtConfigurer.getAppsecret();String result = UrlUtils.sendGet(MyJwtConfigurer.geAccess_token(),param);JSONObject demoJson = JSONObject.parseObject(result);String accessToken = demoJson.getString("access_token");String expiresIn = demoJson.getString("expires_in");Token token = Token.getInstance();token.setAccessToken(accessToken);//过期时间的毫秒数token.setExpiryTime(System.currentTimeMillis()+1000*60*100L);return accessToken;}/*** 发送post请求 json格式* @param url* @param param* @return*/public static String sendPost(String url, String param) {BufferedWriter out = null;     //也可以使用  PrintWriter 但是没有编码设置(字符流)  1-用PrintWriter在服务器上可能消息乱码,《用 -PrintWriter --本地测试正常,发布到服务器就乱码》BufferedReader in = null;   //同样为设置编码,获取传回的JSON格式或是文件String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接    URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("Accept", "application/json");conn.setRequestProperty("Content-Type", "application/json");conn.setRequestProperty("Accept-Charset", "UTF-8");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流    2
//            out = new PrintWriter(conn.getOutputStream());     -----PrintWriterout = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));// 发送请求参数     3------PrintWriter
//            out.print(param);out.write(param);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送 POST 请求出现异常!"+e);e.printStackTrace();}//使用finally块来关闭输出流、输入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}}catch(IOException ex){ex.printStackTrace();}}return result;}}

TemplateData 文件

package com.association.domain;public class TemplateData {private String value;public String getValue() {return value;}public void setValue(String value) {this.value = value;}public TemplateData(String value) {this.value = value;}public TemplateData() {}
}

SendTemplateMessage 文件

package com.association.domain;import java.util.Map;/*** 发送模板消息* @title:SendTemplateMessage*  * @author juekf* @data 2019年9月19日下午3:46:50*/
public class SendTemplateMessage {private String touser; //接收者(用户)的 openidprivate String template_id; //所需下发的模板消息的idprivate String page  = "pages/start/start"; //点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。private String form_id; //表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_idprivate Map<String,TemplateData> data; //模板内容,不填则下发空模板private String emphasis_keyword; //模板需要放大的关键词,不填则默认无放大public String getTouser() {return touser;}public void setTouser(String touser) {this.touser = touser;}public String getTemplate_id() {return template_id;}public void setTemplate_id(String template_id) {this.template_id = template_id;}public String getPage() {return page;}public void setPage(String page) {this.page = page;}public String getForm_id() {return form_id;}public void setForm_id(String form_id) {this.form_id = form_id;}public Map<String, TemplateData> getData() {return data;}public void setData(Map<String, TemplateData> data) {this.data = data;}public String getEmphasis_keyword() {return emphasis_keyword;}public void setEmphasis_keyword(String emphasis_keyword) {this.emphasis_keyword = emphasis_keyword;}
}

四、最后在 业务需要的地方:

 /*** 绑定成功 发送微信服务通知*/Map<String, TemplateData> map = new HashMap<>();map.put("keyword1", new TemplateData(account.getLoginName()));map.put("keyword2", new TemplateData(account.getLoginName()));map.put("keyword3", new TemplateData("绑定成功"));map.put("keyword5", new TemplateData("账号 :" + account.getLoginName() + " 与此微信号绑定成功!"));Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);map.put("keyword4", new TemplateData(dateString));SendTemplateMessageController.sendTemplateMessage(openid, MyJwtConfigurer.geBinding_success(), "",formId, map);

一张是之前的 乱码

修改后正常了

到此结束。

微信小程序发送模板消息demo相关推荐

  1. php+实现群发微信模板消息_使用php实现微信小程序发送模板消息(附代码)

    本篇文章给大家带来的内容是关于使用php实现微信小程序发送模板消息(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 本章将会简单说一下微信小程序的模板消息发送,相对来说比较简 ...

  2. 《微信小程序——发送模板消息》详细步骤

    第一步:获取access_token 第一步详情:因为access_token在微信公众号还是小程序,在一个月之内都有获取次数的限制,并且一个access_token只有2小时的有效期:所以每当我们获 ...

  3. 微信小程序发送模板消息踩的坑

    在微信的微信小程序中,微信提供了和微信服务号相同的模板消息功能. 但是,虽然都是发送模板消息,小程序和服务号的模板消息的使用还是有差别的. 对于微信服务号的模板消息只要通过查看文档就能够知道我们使用模 ...

  4. 微信小程序发送模板消息,php发送模板消息

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. formId 在安卓系统是纯数字,在IOS系统是一串加密字符,如图: 发送模板消息(服务通知)效果图: 前端 ...

  5. 微信小程序 发送模板消息的功能实现

    背景 - 小程序开发的过程中,绝大多数会满足微信支付 - 那么,作为友好交互的体现,自然就会考虑到支付后的消息通知咯 - 所以,我的小程序项目也要求完成这个效果,so.分享一下自己的实现步骤,以方便道 ...

  6. java 微信小程序-发送模板消息

    开发前准备工作 登录微信公众平台-小程序后台,在模板消息里面设置需要发送的模板,拿到模板id. 地址: https://mp.weixin.qq.com 找到微信官方文档-小程序开发-下发小程序和公众 ...

  7. java发送微信小程序模板消息_微信小程序-发送模板消息

    1 添加一个小程序的消息模板,获取到模板id,存储到数据库中,方便以后修改调用 这里有个坑,就是 form_id, 这个是用户触发表单事件的表单id,需要存储到数据库中,给这个表单提交以后的数据,添加 ...

  8. 小程序发送模板消息给用户 —— 一次性模板实现“长期订阅”

    大家好!我是我玩亚索我会C,在写小程序时,我们会有向用户发送消息的需求,比如发送提醒通知,或者是一些重要通知来形成一个服务的闭环.这就要用到微信的发送消息功能了,下面我使用Java语言来详细演示下如何 ...

  9. php怎么实现发送给指定用户,微信小程序 实现模板消息群发、发送给指定用户...

    1. 需求 最近在做一款拼课类小程序,大概需求就是分享课程页面给好友,好友参与达到一定数量后则拼课成功. 好友参与后会给分享者发送一条模板消息 参与人数满足后(拼课成功)会给分享者发送一条模板消息 管 ...

最新文章

  1. 如何使用Hololens 这些手势你都要学
  2. 隐私计算--差分隐私
  3. 网络监控软件:国产化VS外来者
  4. php5.1 0day,DEDECMS 5.1 feedback_js.php 0DAY
  5. 年后开课 | 第 4 期临床基因组家系分析,助力发表Case Report
  6. img内联块元素的操作
  7. php 读取多个文件,使用PHPExcel读取多个文件
  8. Android Sqlite3数据库操作
  9. Vista 自动激活工具(最新 最权威 所有版本 可升级)
  10. amcharts示例
  11. 橱柜高度与身高对照表_橱柜高度与身高对照表 橱柜高度怎么根据身高定制?...
  12. 云上故事 | “电”亮数字生活,阿里云混合云助力南方电网智能调度
  13. 服务器您的网络已被劫持请立即修复,网页被劫持并跳转到发布网络的修复方法...
  14. 接入高防后出现502怎么办?
  15. 【用过的抢票软件汇总】
  16. 禁道具和连携击败姜世离的两种战术
  17. 上海翼长宽(长城-电信合作宽带)更改桥接pppoe拨号
  18. python 爬取天猫店铺商品评论
  19. C语言实验——一元二次方程Ⅱ
  20. rba有哪几個主要組成部分_rba主要由哪部分组成

热门文章

  1. 每日一题MISC——月亮和六便士
  2. 揭秘:清末时期老北京的四大头牌名妓的悲喜人生
  3. 微信系列研究之--------管库房的小丫鬟
  4. 如何构建一个加密货币交换应用程序将要花费多少钱
  5. 10条关于嵌入式软件开发测试的秘诀
  6. dell T110 安装xen 虚拟化
  7. strtol函数用法
  8. 塔防小游戏的开发设计
  9. cnpm 是什么?怎么配置?
  10. (尚硅谷)2021 版 SpringMVC 教程笔记