基于微信的通知渠道,微信为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验。(微信6.5.2及以上版本支持模板功能。低于该版本将无法收到模板消息。)

模板推送位置:服务通知(点击查看详情还能跳转到下发消息的小程序的指定页面)

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

微信小程序模板消息使用说明(官方文档):https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html

为了防止对模板消息的滥用,带来不好的用户体验,小程序对模板消息推送做了相应的限制。

下发条件说明(触发模板消息下发的两个场景):

  1. 支付

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

  2. 提交表单

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

  也就是说,用户提交一次表单,会提供给开发者一次推送权限,多次提交的情况下下发条数独立。所以如果开发者想要哎7天内无限制的为用户推送消息,需要做的就是-->从用户那里获取足够多的推送权限(推送权限就是form表单的formid)。

  所以,我们可以在前端页面来收集用户的formid,然后保存在服务器上。根据小程序的文档说明:用户在小程序内发生过提交表单行为且该表单声明为要发模板消息的,只能在用户发生提交行为的时候收集formid,所以,我们可以把页面上用户可点击的按钮或其他元素用表单组件中的button按钮组件来代替,把用户的交互点击的bindtap事件通过表单的bindsubmit来代替 ,从而捕获用户的点击事件来产生更多的formId。等到真正需要网络请求的时候将收集到的formid发送至服务器保存。发送成功以后清空formid,以便再次收集新的formid。

  后端在发送模板消息的时候先从保存的formid中挑出未过期的一条formid,删除已过期的不可用的fromid以及当前将要用的formid。

  注:这只是一个解决思路,请务必在严格遵守小程序运营规范的前提下把本思路作为一个参考。

  未解决问题:如果用户在一周内没有访问或点击过小程序中的任何组件,那我们就收集不到有效的fromid,也就意味着我们失去了给用户发送模板消息的权限,这种情况下该怎么办?

微信小程序模板消息群发解决思路的更多相关文章

  1. 微信小程序模板消息后端代码

    利用spring 事件发送模板消息 1.定义事件 import com.ruoyi.project.salerauth.domain.TemplateMessage; import org.sprin ...

  2. PHP实现推送微信小程序模板消息

    这边只会写如何实现,至于在公众号管理后台添加模板消息可以参考这篇文章: https://www.cnblogs.com/txw1958/p/wechat-template-message.html,当 ...

  3. 微信小程序模板消息

    1 先去微信公众平台,选择现有模板,会有一个模板编号,模板中没有的关键词,可以申请新增. 微信公众平台直达:https://mp.weixin.qq.com 模板消息对应文档直达:https://de ...

  4. 微信小程序模板消息详解

    先放代码 wxml: <form name='pushMsgFm' report-submit bindsubmit='orderSign'> <view> 单号: 0< ...

  5. 微信小程序模板发送,openid获取,以及api.weixin.qq.com不在合法域名内解决方法

    主要内容在标题三,老手可直接跳到标题三. 本文主要解决个人开发者模板消息发送的问题(没有服务器,不能操作服务器的情况) 针对api.weinxin.qq.com不在以下合法域名列表内的问题提出的解决方 ...

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

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

  7. 120多套各种类别微信小程序模板源码打包下载

    120多套各种类别微信小程序模板源码打包下载,以下是部分截图欢迎下载!120多套各种类别微信小程序模板源码打包下载 下载地址:https://pan.baidu.com/s/1Cfqyc9p2ZDOc ...

  8. 【原创】前端开发人员如何制作微信小程序模板

    (我的博客网站中的原文:http://www.xiaoxianworld.com/archives/305,欢迎遇到的小伙伴常来瞅瞅,给点评论和建议,有错误和不足,也请指出.) 最近接触了一下微信小程 ...

  9. node.js微信小程序配置消息推送

    在开发微信小程序时,有一个消息推送,它的解释是这样的. 消息推送具体的内容是下面的这个网址   https://developers.weixin.qq.com/miniprogram/dev/fra ...

随机推荐

  1. Kali-linux其他信息收集手段

    上面介绍了使用不同的工具以操作步骤的形式进行了信息收集.在Kali中还可以使用一些常规的或非常规方法来收集信息,如使用Recon-NG框架.Netdiscover工具和Shodan工具等.本节将介绍使 ...

  2. Loading dl-debug.c in gdb / Ubuntu 14.04.4 LTS

    转自: https://stackoverflow.com/questions/36025694/loading-dl-debug-c-in-gdb-ubuntu-14-04-4-lts ====== ...

  3. linux内核中网络文件系统的注册初始化

    针对内核3.9 系统开启时,会使用init/main.c,然后再里面调用kernel_init(),在里面会再调用do_basic_setup(),调用do_initcalls(),调用do_one_ ...

  4. 在Java中使用Maven配置的版本信息

    我们在使用maven开发一些项目的时候需要知道当前的版本状态,但版本状态储存在pom.xml文件中,可以采用以下2种方式进行获取: 1. 采用xml解析的方式去获取pom文件的{project.ver ...

  5. LeetCode29.两数相除 JavaScript

    给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 示例 1: 输 ...

  6. 一次“Error Domain=AVFoundationErrorDomain Code=-11841”的调试

    一次"Error Domain=AVFoundationErrorDomain Code=-11841"的调试 起因 最近在重构视频输出模块的时候,调试碰到AVAssetReade ...

  7. 小程序 组件 Component

    一.组件模板和样式 类似于页面,自定义组件拥有自己的 wxml 和模板 wxss 样式. 1.组件模板 组件的写法和页面的写法相同,组件模板与组件数据结合后生成的数节点, 将被插入到组件的引用位置.在 ...

  8. vue组件中,iview的modal组件爬坑--modal的显示与否应该是使用v-show

    这是我第一次写博客,主要是记录下自己解决问题的过程和知识的总结,如有不对的地方欢迎指出来! 需求:点击btn,弹出modal显示图表(以折现图为例) 这应该是很基本的需求也是很容易实现的,代码和效果如 ...

  9. php无限极分类处理

    /** * 无限极分类处理(通过递归方式实现) * @param $section 原始数据Array * @param $html 界面显示前缀,比如 |- * @param $spear 分级中所 ...

  10. JAVA WEB 前台实时监控后台程序运行

    基本思路: 1. 操作状态在类中以静态变量方式(或公共类存储公共变量方式,SESSION方式.COOKIE方式)存在 2. 前台采用AJAX方式激发后台进行业务逻辑操作,并实时更新操作状态信息 3.  ...