参考文档:

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/template-message.html#%E6%A8%A1%E6%9D%BF%E6%B6%88%E6%81%AF%E7%AE%A1%E7%90%86

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.send.html

模板消息

微信6.5.2及以上版本支持

基于微信的通知渠道,我们为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验。

模板下发条件:用户本人在微信体系内与页面有交互行为后触发,

步骤一:获取模板 ID

有两个方法可以获取模板 ID:

  1. 通过模板消息管理接口获取模板 ID
  2. 在微信公众平台手动配置获取模板 ID

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

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

步骤三:调用接口下发模板消息

使用效果

下发条件说明

1. 支付

当用户在小程序内完成过支付行为,可允许开发者向用户在7天内推送有限条数的模板消息(1次支付可下发3条,多次支付下发条数独立,互相不影响)

2. 提交表单

当用户在小程序内发生过提交表单行为且该表单声明为要发模板消息的,开发者需要向用户提供服务时,可允许开发者向用户在7天内推送有限条数的模板消息(1次提交表单可下发1条,多次提交下发条数独立,相互不影响)

templateMessage.send

本接口应在服务器端调用,详细说明参见服务端API。

本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0

发送模板消息

调用方式:

  • HTTPS 调用
  • 云调用

HTTPS 调用

请求地址

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

请求参数

属性 类型 默认值 必填 说明
access_token string   接口调用凭证
touser string   接收者(用户)的 openid
template_id string   所需下发的模板消息的id
page string   点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
form_id string   表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
data Object   模板内容,不填则下发空模板。具体格式请参考示例。
emphasis_keyword string   模板需要放大的关键词,不填则默认无放大

返回值

Object

返回的 JSON 数据包

属性 类型 说明
errcode number 错误码
errmsg string 错误信息

errcode 的合法值

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

请求示例

{"touser": "OPENID","template_id": "TEMPLATE_ID","page": "index","form_id": "FORMID","data": {"keyword1": {"value": "339208499"},"keyword2": {"value": "2015年01月05日 12:30"},"keyword3": {"value": "腾讯微信总部"} ,"keyword4": {"value": "广州市海珠区新港中路397号"}},"emphasis_keyword": "keyword1.DATA"
}

返回示例

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

云调用

云调用是小程序·云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用。

接口方法

openapi.templateMessage.send

需在 config.json 中配置 templateMessage.send API 的权限,详情

请求参数

属性 类型 默认值 必填 说明
touser string   接收者(用户)的 openid
templateId string   所需下发的模板消息的id
page string   点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
formId string   表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
data Object   模板内容,不填则下发空模板。具体格式请参考示例。
emphasisKeyword string   模板需要放大的关键词,不填则默认无放大

返回值

Object

返回的 JSON 数据包

属性 类型 说明
errCode number 错误码
errMsg string 错误信息

errCode 的合法值

说明 最低版本
0 成功  

异常

Object

抛出的异常

属性 类型 说明
errCode number 错误码
errMsg string 错误信息

errCode 的合法值

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

请求示例

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {try {const result = await cloud.openapi.templateMessage.send({touser: 'OPENID',page: 'index',data: {keyword1: {value: '339208499'},keyword2: {value: '2015年01月05日 12:30'},keyword3: {value: '腾讯微信总部'},keyword4: {value: '广州市海珠区新港中路397号'}},templateId: 'TEMPLATE_ID',formId: 'FORMID',emphasisKeyword: 'keyword1.DATA'})console.log(result)return result} catch (err) {console.log(err)return err}
}

返回示例

{"errCode": 0,"errMsg": "openapi.templateMessage.send:ok"
}

微信小程序——给用户发送通知相关推荐

  1. 微信小程序 java服务器发送通知给用户 全流程 (获取openid 获取formid)

    本文写的比较简单,只是一个简单的实现,如有错误,欢迎大家指出,本文为个人学习笔记,只供参考. 如果成功了给句评论,或来个赞呗! 本文大致分为三个内容: 一.注册小程序 二.微信小程序开发代码 三.ja ...

  2. 微信小程序获取用户信息

    微信小程序获取用户信息 微信小程序获取用户信息接口做了调整: 2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像.昵称.性别与地区),将直接获 ...

  3. java监听微信_一种基于java后台应用监控微信小程序的用户访问量的方法与流程...

    本发明涉及java应用与微信小程序应用开发技术领域,具体涉及一种基于java后台应用监控微信小程序的用户访问量的方法. 背景技术: 微信小程序,简称小程序,是一种不需要下载安装即可使用的应用,它实现了 ...

  4. 微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ

    微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ 一.获取用户信息 1.首先我们需要了解什么是微信用户的OpenID 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密 ...

  5. 微信php签名验证_微信小程序API 用户数据的签名验证和加解密

    微信小程序API 用户数据的签名验证和加解密 用户数据的签名验证和加解密 数据签名校验 为了确保 开放接口 返回用户数据的安全性,微信会对明文数据进行签名.开发者可以根据业务需要对数据包进行签名校验, ...

  6. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号

    获取微信用户绑定的手机号,需先调用wx.login接口. 小程序获取code. 后台得到session_key,openid. 组件触发getPhoneNumber 因为需要用户主动触发才能发起获取手 ...

  7. springboot 微信小程序获取用户手机号 最新方式

    springboot 微信小程序获取用户手机号 直接开整!!! 现在有两种方式获取微信用户的手机号 第一种 这种方式比较旧了,也能获取到手机号,但不建议使用. 1.前端调用wx.login()(官方的 ...

  8. 微信小程序获取用户信息(纯前端)

    特别说明 2022年10月25日起,小程序 wx.getUserProfile 接口将被收回. 微信官方不希望开发者直接拿用户的昵称和头像,若小程序需要设置昵称和头像,可以单独开发一个设置页,由用户手 ...

  9. 微信小程序获取用户手机号码,Java后台servlet解密(微信小程序调用微信支付也是大致的流程)

    本篇记录说明 微信小程序获取用户手机号码,Java后台servlet解密(微信小程序调用微信支付也是大致的流程,详细内容可私信交流) (第一次写博客,写得不好的地方见谅,面向新手,大佬请无视,不喜勿喷 ...

最新文章

  1. oracle 无备份恢复数据文件
  2. 2021年春季学期-信号与系统-第三次作业参考答案-第三道题
  3. Apache Spark机器学习.1.7 机器学习工作流示例
  4. (~最新合集~)计算机网络谢希仁第七版 第五章课后答案
  5. Matlab数组创建
  6. SQL server CASE WHEN
  7. CSS一个元素同时使用多个类选择器(class selector)
  8. Spring Boot(2) 配置文件
  9. Java-JUC(六):创建线程的4种方式
  10. 按clear按钮清空两个文本框的内容,按copy按钮时将Source文本框的内容复制到Target文本框,按close按钮结束程序的运行
  11. 【Mac技巧】怎样隐藏电脑Dock栏
  12. 计算机二级vb考试教材,2020年9月全国计算机二级易考套餐:二级VB考试题库+教材...
  13. 求助fax4j,发送和接收传真
  14. kafka-producer-network-thread | producer-2|||Metadata--->[Producer clientId=producer-2] Cluster ID:
  15. 2020年总结:携梦而行,无怨无悔
  16. 360cdn能挡住cc攻击_如何合理利用CDN来防御部分恶意刷量和CC攻击
  17. 第一类和第二类曲面积分的转换
  18. STEAM上的一款电路模拟神器 — CRUMB Circuit Simulator
  19. USB 虚拟串口简介
  20. 【selenium实例一】网易云歌单封面图片

热门文章

  1. Redis Module 模块组件
  2. 找数据?这几个数据源网站就够用了?
  3. Python数据分析与机器学习
  4. 如何设计手机端banner图【电商小白】
  5. idea火箭_火箭的大脑
  6. 手撸的一个快递查询系统,竟然阅读量过1.8w
  7. 【艾琪出品】《计算机应用基础》【试题汇总1】
  8. Linux 5.16 稳定版将带来诸多功能更新
  9. 什么是WinSxS?
  10. jmpi 与ljmp指令分析