评论

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

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

前言

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

查询模板订阅状态 接口

需要基础库大等于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
收藏
评论

14 个评论

  • AQ_CXH
    AQ_CXH
    2021-07-20

    大佬 我点击始终允许后

    我要获取订阅消息的信息 无法获取

    wx.getSetting({
      withSubscriptions: true,
      .....
    }
    


    2021-07-20
    赞同 2
    回复
  • 靖
    2021-06-15

    大佬,我现在有一个问题。就是现在用户点击总是允许的接受通知后,下次就不弹出授权框了。也收不到服务通知。这个怎么解决?

    2021-06-15
    赞同
    回复 2
    • 拾忆
      拾忆
      2021-06-15
      订阅一次只能发送一次,次数用完用户就收不到了。点了总是允许后需要自行引导用户去订阅更多次数的消息。
      如果要让用户重新出现弹窗,需要让用户点击小程序右上角进入小程序设置页,关闭订阅消息再重新打开就行,但是之前所有的订阅次数都会失效。
      2021-06-15
      回复
    • 靖
      2021-06-21回复拾忆
      谢谢。订阅的时候同一个模板可以使用多次么?
      2021-06-21
      回复
  • 叮当猫จุ๊บ
    叮当猫จุ๊บ
    2021-05-21

    thing.DATA,传参写了10个字符为什么通知只显示5个字符

    2021-05-21
    赞同
    回复
  • 靖
    2021-03-23

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

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

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

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

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

    2021-02-08
    赞同
    回复 1
    • 拾忆
      拾忆
      2021-02-08
      没有办法,只能重新引导用户点击订阅。
      2021-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
      回复
  • 、__return'
    、__return'
    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)

正在加载...

登录 后发表内容