微信小程序 实现模板消息群发、发送给指定用户

微信小程序 实现模板消息群发、发送给指定用户,第1张

最近在做一款拼课类小程序,大概需求就是分享课程页面给好友,好友参与达到一定数量后则拼课成功。

按理说很平常的需求,微信公众号里边应该很容易实现,但是想在小程序里边实现这么个功能却有点蛋疼了。

为什么小程序实现起来比较费劲呢,那就要说下小程序发送模板消息的机制了,先看文档怎么说:

划重点, 本人 、 交互 ,也就是说这个模板消息,必须由用户手动来触发,你想后台定时给用户推个消息,洗洗睡吧你。

再来看下面:

这个重点你们自己划吧,发模板消息必须满足这两种情况中的一种,支付就不说了,用户付款后可以推送几条消息,重点是这个 表单提交 。

意思就是我想给用户发个模板消息,第一要搞个表单,第二要让用户来提交这个表单(获取formId),而且这个模板消息还只能发给提交表单的用户本人,你想发给别的用户,呵呵。

好了,说多了都是气,既然这样设计,也是有一定道理,但是道理都是讲给守规矩的人听的,至于不守规矩的,喂!说的就是你。

通过上面的分析我们知道,想发送一个基本的模板消息需要以下步骤:

模板消息接口 POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN 有这么几个参数 :

前面扯了一堆概念,下面我们来把这个功能具体的实现一遍吧,我这里后台用的是php laravel,原理都一样。

我这只写一个例子,一看就明白

有些时候用户 *** 作频繁,可能会导致服务器收到大量请求,所以可以优化下,把formId先存到一个全局变量里边(数组),当达到一定数量后统一发给后台来保存。这块可以灵活运用。

服务端的实现也就两个功能, 收集 和 发送 。

假设我们现在有这么一个类FormIdCollection,可以收集(save)和获取(get)某个openid的formId,那我们给前台暴露的api只需要简单的调用下就可以了,至于发消息,也只需要get一个formId,即可。

下面是FormIdCollection类的一个具体实现,基于laravel(说实话,挺好用的),另外引入了一个微信开发包 overtrue/wechat (这里主要是用来发模板消息、有点大材小用了), https://www.easywechat.com/

我已经封装了一个laravel扩展包,感兴趣的朋友可以上github上看下 https://github.com/laravuel/laravel-wfc 。

至于非框架的php实现,小伙伴可以帮忙弄下。

需要用户在微信小程序中订阅。就是当用户在小程序内点击特定按钮后会d出申请订阅d窗,同意后小程序才会在后续任意时间给该用户推送服务通知。但是微信订阅消息有如下几个特点:

1、选择权在用户手中,微信的订阅消息像是一个开关,是需要用户自己授权才能使用的。

2、时长不会受到限制,订阅消息没有7天内推送消息的时间限制,只要用户没有拒收消息,都可以随时推送服务通知。

单渠道消息推送无法确保消息送达率,为了确保重要消息精准送达,可以考虑接入极光统一消息系统,可以同时触达app,短信,小程序,公众号等7大主流通道,确保消息送达


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11208726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存