最近搞小程序模拟推送消息,才发现小程序推送消息接口准备下线。

请注意,小程序模板消息接口将于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)的更多相关文章

  1. node配置微信小程序解密消息以及推送消息

    上一篇文章介绍过 微信小程序配置消息推送,没有看过的可以先去查看一下,这里就直接去把那个客服消息接口去解密那个消息了. 在这里我选择的还是json格式的加密. 也就是给小程序客服消息发送的消息都会被微 ...

  2. 微信小程序新服务消息推送 —— 订阅消息

    微信团队前不久公测了「订阅消息」,原有的小程序模板消息接口将于 2020 年 1 月 10 日下线,届时将无法发送模板消息.「订阅消息」将完全替代「模板消息」,这两天得空测试了一波. 1.下发权限机制 ...

  3. 微信小程序简单的推送消息流程

    1.进入开发设置-消息推送,启用消息推送 url: 启用并设置消息推送配置后,用户发给小程序的消息以及开发者需要的事件推送,都将被微信转发至该服务器地址中. 2.创建消息模板. 3.WXML代码: 4 ...

  4. $Django 支付宝支付,微信服务号推送消息 (测试需要把应用程序部署到服务器上)

    一 支付宝支付 大概 支付宝支付 正式环境:需要用营业执照去申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.ht ...

  5. IOS中程序如何进行推送消息(本地推送,远程推送)

    [1]-------------什么是推送消息? 我就以一张图解释------------ [2]-----------IOS程序中如何进行本地推送?----------- 2.1,先征求用户同意 1 ...

  6. [wxpusher]分享一个服务器推送消息到微信上的小工具,可以用于微信推送提醒和告警。

    背景 作为一个程序员,业余搞点自己的东西很正常,一般程序员都会有一两台自己的服务器,谁叫今天xx云搞活动,明天yy云搞活动呢. 自家的服务器用来跑爬虫,跑博客,或者跑一些个人业务,但当服务有新状态,抢 ...

  7. 微信小程序客服消息使用指南

    客服消息使用指南 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. 功能介绍 用户可使用小程序客服消息功能,与小程序的客服人 ...

  8. HTML5服务器推送消息的各种解决办法

    摘要 在各种BS架构的应用程序中,往往都希望服务端能够主动地向客户端推送各种消息,以达到类似于邮件.消息.待办事项等通知. 往BS架构本身存在的问题就是,服务器一直采用的是一问一答的机制.这就意味着如 ...

  9. 微信小程序开发模板消息的时候 出现 errcode: 41028, errmsg: "invalid form id hint:

    小程序开发模板消息的时候  出现 errcode: 41028, errmsg: "invalid form id hint: 我是使用的微信支付发送模板消息,提示的formid无效的 大家 ...

随机推荐

  1. python每日练习--基础题

    """ 1. 现有面包.热狗.番茄酱.芥末酱以及洋葱,数字显 示有多少种订购组合, 其中面包必订,0 不订,1 订,比如 10000,表示只订购面包 "&quo ...

  2. 多次读取HttpEntity内容

    有时,需要重复读取HttpEntity,直接使用是行不通的,这时需要使用BufferedHttpEntity类将其进行包装一下. public static void main(String[] ar ...

  3. SpringMvc Filter的使用

    一:Filter过滤器. 先自定义一个过滤器. package com.jbj.filter; import org.springframework.web.filter.OncePerRequest ...

  4. linux系统下tomcat应用开机自启动 配置

    linux系统下tomcat应用开机自启动 配置 相对简单的方式是将tomcat添加为系统服务第一步  复制文件将 $Tomcat_Home/bin目录下的 catalina.sh脚本文件复制到目录/ ...

  5. js常用方法和检查是否有特殊字符串和倒序截取字符串

     js常用方法demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  6. Batch批处理中的 参数 路径和字符串 处理详解

    1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: @echo off set ifo=abcdefghijk ...

  7. 不同字符串,HashCode可能相同

    不同的字符串,hashcode可能相同. 先看例子: @Test public void test6(){ System.out.println("ABCDEa123abc".ha ...

  8. 取余运算 C和python的区别

    今天看书发现python与C的负数取余运算结果不同,查资料理解. 取余运算的算法是相同的  r = a- n*(a/n)   n!=0 r是余数,a是被除数,n是除数.n不能为0,否则都会报错. 负数 ...

  9. C语言|博客作业12

    一.我学到的内容(整理本课程所学,[用思维导图的方式] 二.我的收获(包括我完成的所有作业的链接+收获)不能只有作业链接,没有收获 作业链接 收获 https://edu.cnblogs.com/ca ...

  10. C语言深度剖析自测题8解析

    #include <stdio.h> int  main(void) {    int  a[5] = {1, 2, 3, 4, 5}; int* ptr1 = (int*)(&a ...