小程序推送消息(Template)
最近搞小程序模拟推送消息,才发现小程序推送消息接口准备下线。
请注意,小程序模板消息接口将于2020年1月10日下线,开发者可使用订阅消息功能
咱们现在有需求,所以不管下不下,完成再说。
一:”获取access_token的接口地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
二:发送模板消息
先在微信公众平台选用怒需要的模板id,例如
选用模板消息:
https://mp.weixin.qq.com/wxopen/tmplmsg?action=self_list&token=264012870&lang=zh_CN
登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用

三:页面的 form 组件,属性 report-submit 为 true 时,可以声明为需要发送模板消息,此时点击按钮提交表单可以获取 formId,用于发送模板消息。或者当用户完成 支付行为,可以获取 prepay_id 用于发送模板消息。
我这里使用表单可以获取 formId模拟操作推送消息
四:调用接口下发模板消息
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 | 否 | 模板需要放大的关键词,不填则默认无放大 |
具体操作代码:
<form bind:submit="testSubmit" report-submit="true">
<button formType="submit">发送模板消息</button>
</form>
onLoad: function (options) {
var that = this;
//获取 access_token
that.getAccessToken();
},
getAccessToken: function () {
var that = this;
var appdid = '填写小程序的APPID';
var appsecret = '填写小程序的密钥'
var url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + appdid + '&secret=' + appsecret;
wx.request({
url: url,
success: function (res) {
console.log(res) // 控制台输出结果
that.setData({
access_token: res.data.access_token
})
console.log("*********获取************" + res.data.access_token) // 控制台输出结果
}
})
},
//点击发送模板,获取formid
testSubmit: function (e) {
var self = this;
console.log("*********** e.detail.formId**********" + e.detail.formId)
var _access_token = self.data.access_token
console.log("***********控制台输出结果**********" + _access_token)
var opeid = "微信推送消息接收者的openid"
let url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + _access_token;
let jsonData = {
access_token: _access_token,
touser: opeid,
template_id: '所需下发的模板消息的ID',
form_id: e.detail.formId,
page: "pages/index/index",
data: {
"keyword1": { "value": "互联网大会科学技术", "color": "#173177" },
"keyword2": { "value": "2019年1月4日 09:00", "color": "#173177" },
"keyword3": { "value": "上海国际展中心", "color": "#173177" },
"keyword4": { "value": "务必准时参加", "color": "#173177" },
}
}
console.log("**********jsonData*******************" + JSON.stringify(jsonData))
wx.request({
url: url,
data:jsonData,
method: 'POST',
success: function (res) {
console.log("***" + JSON.stringify(res))
},
fail: function (err) {
console.log('request fail ', err);
},
})
},
记得拿起手机,真机调试模板推送
结果:

成功示例
{
"errcode": 0,
"errmsg": "ok"
}
errcode 的合法值
| 值 | 说明 | 最低版本 |
|---|---|---|
| 40037 | template_id不正确 | |
| 41028 | form_id不正确,或者过期 | |
| 41029 | form_id已被使用 | |
| 41030 | page不正确 | |
| 45009 | 接口调用超过限额(目前默认每个帐号日调用限额为100万) |
小程序推送消息(Template)的更多相关文章
- node配置微信小程序解密消息以及推送消息
上一篇文章介绍过 微信小程序配置消息推送,没有看过的可以先去查看一下,这里就直接去把那个客服消息接口去解密那个消息了. 在这里我选择的还是json格式的加密. 也就是给小程序客服消息发送的消息都会被微 ...
- 微信小程序新服务消息推送 —— 订阅消息
微信团队前不久公测了「订阅消息」,原有的小程序模板消息接口将于 2020 年 1 月 10 日下线,届时将无法发送模板消息.「订阅消息」将完全替代「模板消息」,这两天得空测试了一波. 1.下发权限机制 ...
- 微信小程序简单的推送消息流程
1.进入开发设置-消息推送,启用消息推送 url: 启用并设置消息推送配置后,用户发给小程序的消息以及开发者需要的事件推送,都将被微信转发至该服务器地址中. 2.创建消息模板. 3.WXML代码: 4 ...
- $Django 支付宝支付,微信服务号推送消息 (测试需要把应用程序部署到服务器上)
一 支付宝支付 大概 支付宝支付 正式环境:需要用营业执照去申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.ht ...
- IOS中程序如何进行推送消息(本地推送,远程推送)
[1]-------------什么是推送消息? 我就以一张图解释------------ [2]-----------IOS程序中如何进行本地推送?----------- 2.1,先征求用户同意 1 ...
- [wxpusher]分享一个服务器推送消息到微信上的小工具,可以用于微信推送提醒和告警。
背景 作为一个程序员,业余搞点自己的东西很正常,一般程序员都会有一两台自己的服务器,谁叫今天xx云搞活动,明天yy云搞活动呢. 自家的服务器用来跑爬虫,跑博客,或者跑一些个人业务,但当服务有新状态,抢 ...
- 微信小程序客服消息使用指南
客服消息使用指南 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. 功能介绍 用户可使用小程序客服消息功能,与小程序的客服人 ...
- HTML5服务器推送消息的各种解决办法
摘要 在各种BS架构的应用程序中,往往都希望服务端能够主动地向客户端推送各种消息,以达到类似于邮件.消息.待办事项等通知. 往BS架构本身存在的问题就是,服务器一直采用的是一问一答的机制.这就意味着如 ...
- 微信小程序开发模板消息的时候 出现 errcode: 41028, errmsg: "invalid form id hint:
小程序开发模板消息的时候 出现 errcode: 41028, errmsg: "invalid form id hint: 我是使用的微信支付发送模板消息,提示的formid无效的 大家 ...
随机推荐
- 【Vue】记录一个之前解决跨域问题
proxyTable: { "/proxy/": {//以/proxy/为开头的适合这个规则 target: "http://192.168.7.72:8000" ...
- sts bug SpringJUnit4ClassRunner
SpringJUnit4ClassRunner找不到,不会自动修复, 只能复制引用过去 import org.springframework.test.context.junit4.SpringJUn ...
- 左手Mongodb右手Redis 第三章mongdb操作
mongodb查询操作 1.查询操作 db.getCollection('example_data_1').find({}) 查询所有的信息,相当于mysql中的select * from tabl ...
- PHP常用
php.ini文件配置 时间配置PRC中国 date.timezone = PRC 文件上传file_uploads = On //支持http上传upload_tmp_dir = //临时文件保存路 ...
- flask扩展系列之 - 访问速度限制
flask-limiter 是一个对客户端的访问速率进行限制的flask扩展.可以自定义一些访问的(速度)限制条件来把那些触发限制的请求拒之门外.一般常用来进行对爬虫的限制. 下面就常见的用法,举了一 ...
- 2.tensorflow——Softmax回归
import numpy as np import tensorflow as tf import matplotlib.pyplot as plt from tensorflow.examples. ...
- OSX 创建 randisk(或称 tmpfs)
创建步骤: #!/bin/bash ramdisk_size_in_mb= mount_point=/private/tmp ramdisk_size_in_sectors=$((${ramdisk_ ...
- lua脚本分解字符串
--local str = "文字45 文字 789 文们adsd45 文字 wowo 文字 文字 wowo我们 wowo456 wiwo 465我们 456sdf 45 45我们adsd4 ...
- MySQL 同一字段匹配多个值
delete from api_log WHERE curl LIKE '%.css' or curl LIKE '%.js' or curl LIKE '%.JPG'; 删除字段curl以 js,c ...
- SQL语句优化方式--进阶篇
MYSQL性能 最大数据量 抛开数据量和并发数,谈性能都是扯淡(扯的最疼的那种).Mysql没有限制单表最大记录数,它取决与操作系统对文件大小的限制 文件系统 单文件大小限制 FAT32(采用32位二 ...