1. 需求
最近在作一款拼课类小程序,大概需求就是分享课程页面给好友,好友参与达到必定数量后则拼课成功。vue
好友参与后会给分享者发送一条模板消息
参与人数知足后(拼课成功)会给分享者发送一条模板消息
管理后台能够群发模板消息(给全部用户发消息)
按理说很日常的需求,微信公众号里边应该很容易实现,可是想在小程序里边实现这么个功能却有点蛋疼了。laravel
2. 分析
为何小程序实现起来比较费劲呢,那就要说下小程序发送模板消息的机制了,先看文档怎么说:git
划重点,本人、交互,也就是说这个模板消息,必须由用户手动来触发,你想后台定时给用户推个消息,洗洗睡吧你。
再来看下面:github
这个重点大家本身划吧,发模板消息必须知足这两种状况中的一种,支付就不说了,用户付款后能够推送几条消息,重点是这个表单提交。
意思就是我想给用户发个模板消息,第一要搞个表单,第二要让用户来提交这个表单(获取formId),并且这个模板消息还只能发给提交表单的用户本人,你想发给别的用户,呵呵。面试
献给咱们伟大的TXredis
3. 原理
好了,说多了都是气,既然这样设计,也是有必定道理,可是道理都是讲给守规矩的人听的,至于不守规矩的,喂!说的就是你。
经过上面的分析咱们知道,想发送一个基本的模板消息须要如下步骤:数据库
构建一个form表单
设置表单的report-submit属性为true(用来获取formId发送模板消息)
用户提交表单,把openid和formId一块提交给后台(其实真正开发中通常不会提交openid,由于在用户登陆或者访问小程序时候一般会把openid和当前用户在数据库中作个同步)
后台调用POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN来发送模板消息