评论

一眼告诉你什么是订阅消息了,看完就懂订阅消息。

用户A动作后,发消息通知用户B,如何保证B能收到消息?

消息通知有两种:

一、A的动作后,发消息给A自己,这种容易解决,不多说明;

二、A动作后,发消息给B(比如管理员、店家、楼主),如何保证B收到消息?这种是本方案要解决的问题。


一张图片一眼告诉你什么是订阅消息,产品经理的设计UI居然让人一眼就知道订阅消息是什么玩意。



用户 B (管理员、商家、组长、楼主)在知道订阅数不足后,打开小程序来续订阅数,否则没法收到订阅消息。



补充一:

关于勾选按钮,请注意话述是:“总是保持以上选择,不再询问”,而不是:“总是同意接收订阅消息”,不要幻想就成了永久性订阅消息;

相当于你打电话订外卖,对店家说“老样子”,店家只会马上送一次外卖,而不是会以后每天自动给你送外卖了。

勾选和不勾选的区别是什么呢?

区别仅仅是:不勾选时,必须点击订阅10次,弹窗10次;勾选后,仍然必须点击订阅10次,但是不弹窗。无论如何“订阅”这个点击n次的动作少不了。


补充二:

一旦勾选后,就不可逆了,没有任何办法恢复或取消勾选了,除非你小程序MP后台换一次消息模板号(删除模板,重新添加一次)。


补充三:

关于如何保存订阅数。

保存在数据库中,笔者用的是云开发,数据库表user结构如下:

{
  _id:'openid1',
  nickName:'老张',
  msg:{
    "tempId1":5,
    "tempId2":7,
  }  
}


补充四:

关于如何获取订阅数。两种方式:

一、wx.requestSubscribeMessage的回调success里获取;

二、消息推送机制获取;https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html



最后一次编辑于  2022-09-21  
点赞 25
收藏
评论

61 个评论

  • 叫我饼饼
    叫我饼饼
    2020-11-30

    我觉得这个方案非常棒

    2020-11-30
    赞同 1
    回复
  • Dawn
    Dawn
    2020-03-26

    这个方案如果在必须有订阅消息提醒的场景中,做的挺漂亮的。

    我最近在设计订阅消息使用逻辑的时候,就遇到了类似的问题,微信的订阅消息是保证用户在用完即走的场景下如何做二次触达不二选择,说楼主方案不行的,在这种场景下有更好的解决方案?

    2020-03-26
    赞同 1
    回复 2
    • 老张
      老张
      2020-03-27
      是的。该方案我们一直找不到可提高的地方,除了增加以下:在少于5条的时候,会在最后几条订阅消息的备注栏里(如果有的话),提示用户订阅数不够了,该打开小程序去点击订阅了。
      2020-03-27
      回复
    • 123456
      123456
      2020-03-27
      说的好,很郁闷一些不理解的人,我做个上班下班打卡功能,都是想着这个办法,但是我做了之后觉得,这个并不是长久之计,唉唉但是微信产品太Dan疼了,让我们没办法正常使用长期订阅,不想订阅可以取消的嘛,搞不懂,搞不懂腾讯人啊
      2020-03-27
      2
      回复
  • 彭彤
    彭彤
    04-27

    虽然有各种问题,但不打扰用户是第一位的。

    难道垃圾短信收到不够多?

    做产品的如果这个都想不明白就再想想。

    作为开发人员,我也不喜欢。但接受。

    04-27
    赞同
    回复
  • Norah
    Norah
    2023-12-05

    楼主,给A发通知,我就wx.login获取一下openid然后发送,那我要给B发通知,怎么拿他的openid呀,

    2023-12-05
    赞同
    回复 3
    • 猫眼石
      猫眼石
      2023-12-05
      B肯定先在你小程序干了点什么事,你已经数据库记录了B的openid,B也给你授权了。然后才轮到A这边操作小程序的时候,触发小程序给B发订阅消息
      2023-12-05
      回复
    • 老张
      老张
      2023-12-06
      “给A发通知,我就wx.login获取一下openid然后发送”,这种逻辑是不对的。获取到openid后,哪有马上就发消息的?什么业务逻辑是这样的?肯定是获取到openid后保存到数据库,然后业务进行到需要通知用户的时候,才会去发送吧?
      2023-12-06
      回复
    • w.
      w.
      03-21回复老张
      老哥,第一次开发小程序然后要做这个消息提醒,现在参考还能参考你这个贴子吗
      03-21
      回复
  • LD
    LD
    2023-12-05

    老哥小程序名字是什么,进去体验下



    2023-12-05
    赞同
    回复 1
    • 老张
      老张
      2023-12-05
      太早了,注销了。
      2023-12-05
      回复
  • 伽蓝214
    伽蓝214
    2023-04-23

    老哥,现在是2023年4月,你上面说的内容是否有变化

    2023-04-23
    赞同
    回复 1
    • 老张
      老张
      2023-04-24
      没什么变化。
      不过,就是让你理解什么是订阅消息,该方案仅供参考。
      2023-04-24
      回复
  • 小哥
    小哥
    2023-04-10

    其实微信的产品经理们不是不想照顾开发者和商家感受,大家站在普通小白用户角度,如果从微信过来乱七八糟的的订阅信息太多造成干扰,最快速消除干扰的方式大概就是直接从消息列表里面禁止了,要这样操作被禁止可是微信的所有通知消息啊,微信的海量消息入口就被那些随意搞订阅消息的开发者毁了,所以,不是微信产品经理们傻逼,而是在兼容低级开发者的前提下不得不首先以用户体验为优先考虑。

    2023-04-10
    赞同
    回复
  • sherry~冥D的糖球
    sherry~冥D的糖球
    2023-03-07

    你好,我想实现的场景是,A是企业小程序,B是使用该小程序的员工,A需要经常给B下发不同的工作任务通知,比如今天盘点仓库,B收到通知进入小程序录入盘点信息提交给后台。明天可能下发检修设备等通知。B都订阅了消息后,A能每次都直接给B下发通知吗?是属于一次性订阅还是要开长期订阅?或者实现这个场景不是订阅消息能完成的?

    2023-03-07
    赞同
    回复 2
  • 刘炜煌
    刘炜煌
    2022-11-28

    如果一开始只有一个模板“项目执行进展提醒”,并且用户A选择了‘总是保持以上选择’。之后再添加其他模板,用户A是不是再也看不到弹窗。

    2022-11-28
    赞同
    回复 1
    • Smile🍇
      Smile🍇
      2023-11-21
      能看到弹窗,但此时弹窗里只有新添加的其他模板让你选则通不通知
      2023-11-21
      回复
  • 馬
    2022-09-20

    那么请问在同意了订阅消息后,且勾选了“总是保持以上选择,不再询问”。商家就可以在后台随意推送消息内容且随时都可以推送消息吗?通过服务通知送达。

    2022-09-20
    赞同
    回复 4
    • 老张
      老张
      2022-09-20
      不能。看一下:补充一。
      2022-09-20
      回复
    • 馬
      2022-09-21回复老张
      假使勾选了“总是保持以上选择,不再询问”,其实消费者只要每次在那个场景或网页就会自动触发而不需要同意授权了。那样就可以发消息了。比如支付二维码,支付成功后获取消费者授权,总是保持以上选择后下次支付成功后也可以获取授权从而发消息。
      2022-09-21
      回复
    • 老张
      老张
      2022-09-21回复
      “不需要授权”而已,但是用户必须仍要订阅,订阅,订阅。
      即必须执行一次wx.requestSubscribeMessage,只不过执行它的时候不弹授权窗,而已。
      2022-09-21
      回复
    • 老张
      老张
      2022-09-21
      而想要执行wx.requestSubscribeMessage,必须要有用户点击行为或者支付行为。即,你想发消息10条,无论如何,都必须要用户“点击”10次。无非是以前是点击10次,弹窗10次,现在是点击10次,不弹窗。
      2022-09-21
      回复

正在加载...

登录 后发表内容