订阅消息开发步骤:

  1、小程序管理后台添加订阅消息的模板

  2、小程序前端编写调用(拉起)订阅授权

      wx.requestSubscribeMessage({ tmplIds: ['34fwe1211xxx'], success (res) { } })

  3、后台通过小程序接口发送订阅消息

//$accessToken的值需要用小程序的appid和密码为参数,通过接口:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
$url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=".$AccessToken;
$message='通过';
$data='请点击该条信息,前往小程序查看内容';
$post = array(
'touser'=>$openid, //接受消息用户的openid
'template_id'=>"34fwe1211xxx", //发送提醒审核用户信息的模板
'page'=>"pages/index/index", //设置点击推送的订阅消息跳到首页
'data'=>array(
'phrase1'=>array('value'=>$message),//严格文档phrase类型
'thing3'=>array('value'=>$data),//严格文档thing类型
'date2'=>array('value'=>date('Y年m月d H:i',time()))//严格文档date类型
)
http_curl_post_json($url,$post);

最近开发的小程序项目要添加订阅消息功能,因为项目的小程序不能申请永久订阅模板,所以只能弄一次性订阅消息模板,看了官方文档结合自己开发,总结如下:
   1、用户发生点击行为(订阅)或者发起支付回调后,才可以调起(拉起)订阅消息界面
     2、tmplIds参数:需要订阅的消息模板的id的集合,一次调用最多可订阅3条消息-------意思是:一次调用(拉起)最多三条订阅消息模板,即用户最多能订阅3种类型消息模板的消息,而不是说订阅一次后,可发送三条消息
     3、勾选了"总是保持以上选择,不在询问",按钮后,很多开发者会误解为:勾选后,即一次性订阅消息变成永久订阅,即不用用户再次授权,就可以发送无数条信息。
          这种理解是错误的,这个勾选其实是勾选后,下次用户触发订阅消息功能就不会弹出授权窗口了
     4、用户点击触发订阅授权并订阅后,官方没有限制后台多久之内发送该次消息,但只能发送一次,即用户点击订阅,订阅消息只能发送一次,发送订阅消息后客户收到了,客户要想再次收到订阅消息,则必须要客户在小程序再次同意订阅该消息(对通知业务影响很大,限制了业务扩展)

  5、订阅消息可理解为无限制订阅,但每次订阅的有效期为一次性,即订阅到发送后该次的有效期就结束了

订阅消息---由于微信小程序取消模板消息,限只能开发订阅消息的更多相关文章

  1. 微信小程序发送模板消息

    微信小程序发送模板消息 标签(空格分隔): php 看小程序文档 [模板消息文档总览]:https://developers.weixin.qq.com/miniprogram/dev/framewo ...

  2. 微信小程序 template模板使用

    参考文章: 微信小程序-template模板使用

  3. 微信小程序的模板消息与小程序订阅消息

    小程序订阅消息 功能介绍 消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验. 订阅消息推送位置:服务通知 订阅消息下发条件:用户自主订阅 订阅消息卡片跳 ...

  4. 微信小程序之模板消息推送

    最近在用sanic框架写微信小程序,其中写了一个微信消息推送,还挺有意思的,写了个小demo 具体见官方文档:https://developers.weixin.qq.com/miniprogram/ ...

  5. 微信小程序 发送模板消息的功能实现

    背景 - 小程序开发的过程中,绝大多数会满足微信支付 - 那么,作为友好交互的体现,自然就会考虑到支付后的消息通知咯 - 所以,我的小程序项目也要求完成这个效果,so.分享一下自己的实现步骤,以方便道 ...

  6. 微信小程序template模板与component组件的区别和使用

    前言: 除了component,微信小程序中还有另一种组件化你的方式template模板,这两者之间的区别是,template主要是展示,方法则需要在调用的页面中定义.而component组件则有自己 ...

  7. 如何在微信小程序的模板渲染中使用JS?

    在微信小程序中使用模板渲染时,可能需要用JS对其进行处理. <view class="price text-red text-lg"> <!-- 价格保留两位小数 ...

  8. 重磅消息:微信小程序支持长按二维码进入

    之前微信小程序一般通过以下入口进入: 而用户经常使用“长按二维码”识别应用的功能一直未开放,据酷客多了解,微信安卓6.5.6内测版已经支持长按二维码识别和进入小程序,意味着把小程序二维码分享给朋友,或 ...

  9. 微信小程序:模板消息推送提示{“errcode”:41030,”errmsg”:”invalid page hint: [gP1eXXXXXX]”}

    在开发小程序 模板消息定时推送功能时,在开发版测试程序功能运行正常,但提交到线上后提示报错{“errcode”:41030,”errmsg”:”invalid page hint: [gP1eXXXX ...

随机推荐

  1. 自动化测试用例中的raise

    1.一次自动化测试学习中,expect异常中包含“raise e”,这是什么意思呢? 2.网上查了一下,大概意思是:若有异常,不会执行一下的操作,但是明明是语句后确实没有其他语句呀. 3.注释掉之后, ...

  2. vue 入门 ------简单购物车功能实现(全选,数量加减,价格加减)

    简易购物车功能(无任何布局 主要是功能) 数量的加减 商品的总价钱 全选与全不选 删除(全选.价格 受影响) <script src="https://cdn.jsdelivr.net ...

  3. light oj1170 - Counting Perfect BST卡特兰数

    1170 - Counting Perfect BST BST is the acronym for Binary Search Tree. A BST is a tree data structur ...

  4. Python 实现转堆排序算法原理及时间复杂度(多图解释)

    原创文章出自公众号:「码农富哥」,欢迎转载和关注,如转载请注明出处! 堆基本概念 堆排序是一个很重要的排序算法,它是高效率的排序算法,复杂度是O(nlogn),堆排序不仅是面试进场考的重点,而且在很多 ...

  5. ASP.NET Core ResponseCache进行缓存操作

    前言 本章将介绍客户端缓存将介绍浏览器缓存和服务端缓存,使用浏览器缓存将减少对web服务器的请求次数,同时可以提升性能,避免重复的运算浪费. ASP.NET Core对于HTTP缓存分为两种: 客户端 ...

  6. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.

    mongoose报错:DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and wil ...

  7. Java日志介绍(4)-Log4j2

    Log4j2是Log4j的升级版,相比其前身Log4j 1.x提供了显著的改进,并提供了在Logback中提供的许多改进,同时修复了Logback体系结构中的一些固有问题. Log4j2的内容很多,本 ...

  8. LINQ标准查询运算符的执行方式-即时

    即时,声明查询的位置立即执行.查询返回如果是不可以枚举的的结果,都会立即执行. 执行方式为“”即时”的查询运算符有下面这些. Aggregate 应用累计器函数和结果选择器,返回传入泛型类型TSour ...

  9. HTML连载68-形变中心点、形变中心轴

    一. 形变中心点介绍 <style> ul li { width: 100px; height: 100px; list-style: none; float:left; margin:0 ...

  10. jenkin docker node 自动化部署配置

    jenkins 安装必须插件 NodeJS Plugin Publish Over SSH 1:新建一个任务,选择构建一个自由风格的软件项目 2:源码管理选择Git 2.1 填写Git项目地址Repo ...