当前位置: 首页 > news >正文

微信小程序开发之模板消息

 

一、添加模板

登录https://mp.weixin.qq.com获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用,详见模板审核说明

页面的 <form/> 组件,属性report-submittrue时,可以声明为需发模板消息,此时点击按钮提交表单可以获取formId,用于发送模板消息。或者当用户完成支付行为,可以获取prepay_id用于发送模板消息。

表单

<form bindsubmit="formSubmit" report-submit='true' >
  ...
  <view class="btn-area">
    <button formType="submit">Submit</button> 
  </view>
</form>

脚本

Page({
  formSubmit: function(e) {
    console.log('form发生了submit事件,formId为:', e.detail.value)
  } 
})


report-submit 是否返回 formId 用于发送模板消息

 

二、发送模板消息

接口地址:(ACCESS_TOKEN 需换成上文获取到的 access_token)

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

HTTP请求方式:

POST

POST参数说明:

参数必填说明
touser接收者(用户)的 openid
template_id所需下发的模板消息的id
page点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
form_id表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
data模板内容,不填则下发空模板
color模板内容字体的颜色,不填默认黑色
emphasis_keyword模板需要放大的关键词,不填则默认无放大
示例:
{
  "touser": "OPENID",  
  "template_id": "TEMPLATE_ID", 
  "page": "index",          
  "form_id": "FORMID",         
  "data": {
      "keyword1": {
          "value": "339208499", 
          "color": "#173177"
      }, 
      "keyword2": {
          "value": "2015年01月05日 12:30", 
          "color": "#173177"
      }, 
      "keyword3": {
          "value": "粤海喜来登酒店", 
          "color": "#173177"
      } , 
      "keyword4": {
          "value": "广州市天河区天河路208号", 
          "color": "#173177"
      } 
  },
  "emphasis_keyword": "keyword1.DATA" 
}

特别说明:touser的OpenId 只能为当前用户的OpenId ,即 模板消息只能发给当前提交表单的用户

返回码说明:

在调用模板消息接口后,会返回JSON数据包。

正常时的返回JSON数据包示例:

{
  "errcode": 0,
  "errmsg": "ok",
}

错误时会返回错误码信息,说明如下:

返回码说明
40037template_id不正确
41028form_id不正确,或者过期
41029form_id已被使用
41030page不正确
45009接口调用超过限额(目前默认每个帐号日调用限额为100万)

 

 

 

 

官网地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html

 

欢迎阅读本系列文章:微信小程序开发教程目录

 

相关文章:

  • python 回溯法 子集树模板 系列 —— 12、选排问题
  • 快速部署rabbitMQ教程
  • foobar2000播放dff格式音乐的解决办法
  • Bzoj1228 [SDOI2009]ED
  • NIO2.0之copy、delete和move
  • zendstudio的安装和破解
  • 算术表达式计算
  • 比特币交易网站收到银行销户通知
  • H3C交换机经常使用命令汇总
  • 2017 MacBook Pro比去年的机型快了20%
  • 移动端页面弹出对话框效果Demo
  • qTunnel —— Go 开发的安全 Socket 网络隧道
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • 你猜!GitHub 最大开源贡献者是谁?
  • SecureCRT图形界面(通过设置调用Xmanager - Passive程序)
  • HTML-表单
  • java8-模拟hadoop
  • JavaScript类型识别
  • Sublime text 3 3103 注册码
  • Vue小说阅读器(仿追书神器)
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 算法系列——算法入门之递归分而治之思想的实现
  • #预处理和函数的对比以及条件编译
  • $(function(){})与(function($){....})(jQuery)的区别
  • (独孤九剑)--文件系统
  • (分布式缓存)Redis持久化
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三)终结任务
  • (十五)使用Nexus创建Maven私服
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)插入排序
  • (转)人的集合论——移山之道
  • ./configure,make,make install的作用(转)
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net程序集学习心得
  • @RequestMapping 的作用是什么?
  • [ 第一章] JavaScript 简史
  • [30期] 我的学习方法
  • [Android]RecyclerView添加HeaderView出现宽度问题
  • [C++随笔录] 红黑树
  • [Interview]Java 面试宝典系列之 Java 多线程
  • [Java算法分析与设计]--线性结构与顺序表(List)的实现应用
  • [MySQL]视图索引以及连接查询案列
  • [STM32F407ZET6] GPIO
  • [vim]Python编写插件学习笔记3 - 命令行参数
  • [webservice] springboot整合cxf
  • [Windows][Linux]字体相关
  • [zabbix] zabbix监控其他
  • [代码] 类似 YYText 将表情文本转换成表情字符
  • [单片机框架][bsp层][N32G4FR][bsp_pwm] pwm配置和使用
  • [翻译]CryEngine3人工智能的正确设置——高级技巧