前言
不知何时官方更新了 查询模板订阅状态接口 的返回格式,导致之前的判断逻辑不可用,于是梳理了一下最新的用法。
查询模板订阅状态 接口
需要基础库大等于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个以内纯汉字,例如:配送中 |
大佬。一次性订阅消息是一个模板id一个用户只能发一次,还是说这个用户授权一次发一次,授权几次就能发几次
无限推送只有长期订阅消息才有,一次性订阅消息就是根据订阅次数来的,不要懵
大佬你好,文档中 “需要订阅的消息模板的id的集合,一次调用最多可订阅3条消息”,这里的3条消息是消息模板吗??
帖子不存在 [捂脸]