评论

「笔记」订阅消息-订阅次数维护(新)

官方更新了 查询模板订阅状态接口 的返回格式,导致之前的判断逻辑不可用,于是梳理了一下最新的用法。

前言

不知何时官方更新了 查询模板订阅状态接口 的返回格式,导致之前的判断逻辑不可用,于是梳理了一下最新的用法。

查询模板订阅状态 接口

需要基础库大等于2.10.0才支持。

wx.getSetting({
  withSubscriptions: true,
  success (res) {
    console.log(res)
  }
})

官方文档

新的返回格式

res.subscriptionsSetting = {
	mainSwitch: true, // 订阅消息总开关
	itemSettings: {   // 每一项开关
		zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: 'reject', 
		ke_OZC_66gZxALLcsuI7ilCJSP2OJ2vWo2ooUPpkWrw: 'ban'
	},
	zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: 'reject', 
	ke_OZC_66gZxALLcsuI7ilCJSP2OJ2vWo2ooUPpkWrw: 'ban'
}

旧的返回格式

res.subscriptionsSetting = {
	zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: 'reject', 
	ke_OZC_66gZxALLcsuI7ilCJSP2OJ2vWo2ooUPpkWrw: 'ban'
}

对比以上两段代码可以发现,新的返回增加了一个mainSwitch,以及多了一层itemSettings。

假设在原有的判断逻辑不变的情况下,当mainSwitch为false状态的时候,清空当前用户所有的订阅记录,反之再判断itemSettings内的每一项状态是否为accept,如果非accept则删除订阅记录,这样就可以和原来一样了。

可以参考我之前发的 订阅消息-订阅次数维护 与本文结合一起看。

附:订阅消息参数值内容限制说明

参数类别 参数说明 参数值限制 说明
thing.DATA 事物 20个以内字符 可汉字、数字、字母或符号组合
number.DATA 数字 32位以内数字 只能数字,可带小数
letter.DATA 字母 32位以内字母 只能字母
symbol.DATA 符号 5位以内符号 只能符号
character_string.DATA 字符串 32位以内数字、字母或符号 可数字、字母或符号组合
time.DATA 时间 24小时制时间格式(支持+年月日) 例如:15:01,或:2019年10月1日 15:01
date.DATA 日期 年月日格式(支持+24小时制时间) 例如:2019年10月1日,或:2019年10月1日 15:01
amount.DATA 金额 1个币种符号+10位以内纯数字,可带小数,结尾可带“元” 可带小数
phone_number.DATA 电话 17位以内,数字、符号 电话号码,例:+86-0766-66888866
car_number.DATA 车牌 8位以内,第一位与最后一位可为汉字,其余为字母或数字 车牌号码:粤A8Z888挂
name.DATA 姓名 10个以内纯汉字或20个以内纯字母或符号 中文名10个汉字内;纯英文名20个字母内;中文和字母混合按中文名算,10个字内
phrase.DATA 汉字 5个以内汉字 5个以内纯汉字,例如:配送中
最后一次编辑于  2020-03-12  
点赞 3
收藏
评论

11 个评论

  • 靖
    03-23

    楼主你好,看了你写的三篇 关于小程序订阅消息的文章。我的理解是,一次订阅可以最多3个模板,但是发送只能3选1的发送一次的意思么?而不是一次订阅,我后台可以不同时段可以分别发送3个模板各一次对吧。希望看到回复。我现在业务是这样,做一个在线维修的业务员,订单创建,后用户点击允许3个模板,然后后续有维修员接单,推送一次。接着维修完成再推送一次。看来我这个业务是无法实现了是吗?只能推送3个模板的一条。

    03-23
    赞同
    回复 4
    • 拾忆
      拾忆
      03-23
      订阅的时候用户可以选3选1,可以不选,也可以全选,只要用户订阅了,对应的模板就能发送对应的次数。
      03-23
      回复
    • 靖
      03-24回复拾忆
      也就是3个都选了,3个都会发么?
      03-24
      回复
    • 靖
      03-24回复拾忆
      还有一个问题,现在点了下面的“总是选中”,就马上收不到消息了提示43101。之前不点下面的“总是选中”是每次都可以弹出来让我授权并且可以收到消息的。现在点了“总是选中”没有办法可以重新弹出来了,唉。。。这个怎么解决?谢谢
      03-24
      回复
    • 拾忆
      拾忆
      03-24
      总是选中就是不弹窗,但是其它的交互逻辑是不变的,还是之前弹窗的那些。
      03-24
      回复
  • 大蒙蒙
    大蒙蒙
    03-20

    请问订阅弹框里要显示的3个模板,可以自定义模板吗?

    03-20
    赞同
    回复 1
    • 拾忆
      拾忆
      03-20
      自定义指什么?你后台模板管理里面能加上的就可以。
      03-20
      回复
  • 黄昏雨
    黄昏雨
    02-08

    大佬,一次性订阅消息,如果我点击了“总保持以上选择,不再询问”情况下,后台发送的模板次数超过了最大发送次数被官方拒绝后,有办法再次重置该模板消息次数吗?

    02-08
    赞同
    回复 1
    • 拾忆
      拾忆
      02-08
      没有办法,只能重新引导用户点击订阅。
      02-08
      回复
  • SUPYUCANDOCHINUP
    SUPYUCANDOCHINUP
    2020-07-02

    您好,请问点击订阅消息(服务消息)进入页面后 怎样获取后台URL中的参数啊? wxMssVo.setPage("pages/cloud/manager/show?openid=" +openid);  比如我进入show页面后,怎样在页面上获取openid啊? 谢谢

    2020-07-02
    赞同
    回复
  • 你好!我是郑式钊!
    你好!我是郑式钊!
    2020-06-10

    小程序订阅消息的推送是不是有延迟啊?不同的订单 都点击了授权 第一次有收到 第二次就收不到了

    2020-06-10
    赞同
    回复 2
    • 拾忆
      拾忆
      2020-06-10
      这个不清楚,只能自己尝试,如果发现是有问题给官方反馈让官方去查。
      2020-06-10
      回复
    • 只争朝夕°
      只争朝夕°
      2020-06-19
      对的,我也出现了这种情况,你那边解决了吗?朋友
      2020-06-19
      回复
  • 、___佳佳'
    、___佳佳'
    2020-04-18

    大佬 ,模板一直报错43101、我想在小程序上传作业的时候,点击上传的时候,触发订阅,如果下发通知成功,则上传作业,但是一直宝座43101,怎么解决下

    2020-04-18
    赞同
    回复 1
    • 拾忆
      拾忆
      2020-04-18
      点击上传的时候是不能触发的,只能单独按钮触发。
      2020-04-18
      回复
  • Peter👊
    Peter👊
    2020-04-01

    第一个问题:如何让用户多次订阅?

    第二个问题:一次性订阅最多能让用户订阅多少次?

    2020-04-01
    赞同
    回复 14
    • 拾忆
      拾忆
      2020-04-01
      问题一,点按钮
      问题二,点一次订阅一次,最多可以同时允许3个模板,就是3次。
      2020-04-01
      回复
    • Peter👊
      Peter👊
      2020-04-01回复拾忆
      同一个用户点击同一个模板可以一直点吗?一直增加次数,比如十次
      2020-04-01
      回复
    • 拾忆
      拾忆
      2020-04-01回复Peter👊
      可以呀,只要你能让用户点就行,点几千次都行。
      2020-04-01
      回复
    • Peter👊
      Peter👊
      2020-04-01回复拾忆
      那我把模板消息替换了,现在模板消息还是能用,就是每次都要计算多少次了,还得填fromId,麻烦死了
      2020-04-01
      回复
    • 拾忆
      拾忆
      2020-04-01
      嗯,没办法
      2020-04-01
      回复
    查看更多(9)
  • nut
    nut
    2020-03-24

    大佬。一次性订阅消息是一个模板id一个用户只能发一次,还是说这个用户授权一次发一次,授权几次就能发几次

    2020-03-24
    赞同
    回复 3
    • 拾忆
      拾忆
      2020-03-24
      订阅消息根据用户订阅的模板和订阅次数决定能发送多少次,订阅授权一次只能发送一次,订阅两次可以发送两次。
      2020-03-24
      回复
    • TiAmo
      TiAmo
      2020-04-01回复拾忆
      他这个订阅消息是每点一次就弹订阅框?我现在项目是后台更新文章了或者活动就发给用户通知,之前的模板消息没有了,现在订阅消息我之前以为无限次推送,后来看了你文章更懵了
      2020-04-01
      回复
    • 拾忆
      拾忆
      2020-04-01回复TiAmo

      无限推送只有长期订阅消息才有,一次性订阅消息就是根据订阅次数来的,不要懵

      2020-04-01
      回复
  • ⃰Rain
    ⃰Rain
    2020-03-13

    大佬你好,文档中 “需要订阅的消息模板的id的集合,一次调用最多可订阅3条消息”,这里的3条消息是消息模板吗??

    2020-03-13
    赞同
    回复 1
    • 拾忆
      拾忆
      2020-03-13
      一次性订阅消息的模板。
      2020-03-13
      回复
  • ᥴꪮꪮꪶ .
    ᥴꪮꪮꪶ .
    2020-03-10

    我的怎么没有返回最新格式的?

    2020-03-10
    赞同
    回复 3
    • 拾忆
      拾忆
      2020-03-12
      格式是一样的,只是没有勾选总是允许,就不会返回下面的模板状态。
      2020-03-12
      回复
    • ᥴꪮꪮꪶ .
      ᥴꪮꪮꪶ .
      2020-03-12回复拾忆
      打开总是允许了   mainswitch 已经是true了
      2020-03-12
      回复
    • 拾忆
      拾忆
      2020-03-12回复ᥴꪮꪮꪶ .
      2020-03-12
      回复

正在加载...

登录 后发表内容