微信小程序> 微信小程序——给用户发送通知

微信小程序——给用户发送通知

浏览量:485 时间: 来源:第7维度

参考文档:

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_tokenstring 接口调用凭证
touserstring 接收者(用户)的 openid
template_idstring 所需下发的模板消息的id
pagestring 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
form_idstring 表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
dataObject 模板内容,不填则下发空模板。具体格式请参考示例。
emphasis_keywordstring 模板需要放大的关键词,不填则默认无放大

返回值

Object

返回的 JSON 数据包

属性类型说明
errcodenumber错误码
errmsgstring错误信息

errcode 的合法值

说明最低版本
40037template_id不正确 
41028form_id不正确,或者过期 
41029form_id已被使用 
41030page不正确 
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 的权限,详情

请求参数

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

返回值

Object

返回的 JSON 数据包

属性类型说明
errCodenumber错误码
errMsgstring错误信息

errCode 的合法值

说明最低版本
0成功 

异常

Object

抛出的异常

属性类型说明
errCodenumber错误码
errMsgstring错误信息

errCode 的合法值

说明最低版本
40037template_id不正确 
41028form_id不正确,或者过期 
41029form_id已被使用 
41030page不正确 
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"}

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎