微信小程序模板消息群发解决思路
基于微信的通知渠道,微信为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验。(微信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,也就意味着我们失去了给用户发送模板消息的权限,这种情况下该怎么办?
微信小程序模板消息群发解决思路的更多相关文章
- 微信小程序模板消息后端代码
利用spring 事件发送模板消息 1.定义事件 import com.ruoyi.project.salerauth.domain.TemplateMessage; import org.sprin ...
- PHP实现推送微信小程序模板消息
这边只会写如何实现,至于在公众号管理后台添加模板消息可以参考这篇文章: https://www.cnblogs.com/txw1958/p/wechat-template-message.html,当 ...
- 微信小程序模板消息
1 先去微信公众平台,选择现有模板,会有一个模板编号,模板中没有的关键词,可以申请新增. 微信公众平台直达:https://mp.weixin.qq.com 模板消息对应文档直达:https://de ...
- 微信小程序模板消息详解
先放代码 wxml: <form name='pushMsgFm' report-submit bindsubmit='orderSign'> <view> 单号: 0< ...
- 微信小程序模板发送,openid获取,以及api.weixin.qq.com不在合法域名内解决方法
主要内容在标题三,老手可直接跳到标题三. 本文主要解决个人开发者模板消息发送的问题(没有服务器,不能操作服务器的情况) 针对api.weinxin.qq.com不在以下合法域名列表内的问题提出的解决方 ...
- node配置微信小程序解密消息以及推送消息
上一篇文章介绍过 微信小程序配置消息推送,没有看过的可以先去查看一下,这里就直接去把那个客服消息接口去解密那个消息了. 在这里我选择的还是json格式的加密. 也就是给小程序客服消息发送的消息都会被微 ...
- 120多套各种类别微信小程序模板源码打包下载
120多套各种类别微信小程序模板源码打包下载,以下是部分截图欢迎下载!120多套各种类别微信小程序模板源码打包下载 下载地址:https://pan.baidu.com/s/1Cfqyc9p2ZDOc ...
- 【原创】前端开发人员如何制作微信小程序模板
(我的博客网站中的原文:http://www.xiaoxianworld.com/archives/305,欢迎遇到的小伙伴常来瞅瞅,给点评论和建议,有错误和不足,也请指出.) 最近接触了一下微信小程 ...
- node.js微信小程序配置消息推送
在开发微信小程序时,有一个消息推送,它的解释是这样的. 消息推送具体的内容是下面的这个网址 https://developers.weixin.qq.com/miniprogram/dev/fra ...
随机推荐
- 7、Spring -Cloud-路由网管Spring Cloud Zuul
7.1.为什么需要Zuul Zuul 作为路由网关组件,在微服务架构中有着非常重要的作用: 7.2.Zuul的工作原理 Zuul 是通过 Servlet 来实现的, Zuul 通过自定义的 Zuu!S ...
- php编译安装报错
Cannot find OpenSSL's <evp.h> 解决方法: 下载openssl-1.1.0h.tar 包 [root@localhost ~]# cd openssl-1.1 ...
- 404 Note Found 队-Alpha4
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:丹丹 组员7:何家伟 组员8:政演 组员9:鸿杰 组员10:刘一好 组员:何宇恒 展示组内最新 ...
- C编程规范, 演示样例代码。
/*************************************************************** *Copyright (c) 2014,TianYuan *All r ...
- 百度地图中找不到BMap的解决
一般情况下是引用的问题,产生的原因大概有两种 1.不同架构的引用方式不同,引用js的方式不同导致 2.自身调用顺序有误 官方的引用方式是使用标签引入,示例 <script type=" ...
- Xquery的初步学习(一次Lab作业的总结)
Task 1: Open countries.xml, compose the following XQueries: 1. Return the area of Mongolia. 2. Retur ...
- Mybatis 配置文件
1.核心配置文件 sqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOC ...
- pyhton3解决"tuple parameter unpacking is not supported"问题
准备将键值对中的键与值对调,结果第10行出了bug,显示"tuple parameter unpacking is not supported" 解决方法:将map(lambda( ...
- vue项目持久化存储数据的实现代码
方式一.使用localStorage在数据存储 1.要在浏览器刷新的时候重新存储起来 if (window.localStorage.getItem(authToken)) { store.commi ...
- 常见的Content-Type类型
Content-Type说明 MediaType,即是Internet Media Type,互联网媒体类型:也叫做MIME类型, 在Http协议消息头中,使用Content-Type来表示具体请求中 ...