小程序通过模版消息获取拿不到formid了,需通过订阅消息

5,419 阅读4分钟

uni-app 小程序 通过订阅消息推动服务消息

2020.09.11

以往的做法,需要使用表单提交formid,然后下发模板消息,现在通过微信小程序的「订阅消息」触发推送消息机制.

<form name='pushMsgFm' report-submit bindsubmit='form'>
    <button form-type="submit">submit</button>
</form>

结果微信开发工具报错:the formId is no longer available in develop or trial version of this mini program

查阅最新文档之后,注意啦

⚠️⚠️⚠️ 小程序模板消息接口将于2020年1月10日下线,开发者可使用订阅消息功能

通过订阅消息发送服务通知

使用说明:

步骤一: 获取模板 ID

在微信公众平台手动配置获取模板 ID: 登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。

  1. 开通订阅消息

  2. 选择模版

步骤二:获取下发权限

详见小程序端消息订阅接口 wx.requestSubscribeMessage

步骤三:调用接口下发订阅消息

详见服务端消息发送接口 subscribeMessage.send 注意事项

  • 一次性模板 id 和永久模板 id 不可同时使用。
  • 低版本基础库2.4.4~2.8.3 已支持订阅消息接口调用,仅支持传入一个一次性 tmplId / 永久 tmplId。
  • 2.8.2 版本开始,用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面。
  • 2.10.0 版本开始,开发版和体验版小程序将禁止使用模板消息 formId。 参数

2020.09.12

服务端 uniformMessage.send 接口和 subscribeMessage.send接口有什么不同

uniformMessage.send 下发小程序和公众号统一的服务消息. 但是现在小程序的服务通知已经不支持uniformMessage.send发送了,需要通过订阅消息 subscribeMessage.send 接口发送.

subscribeMessage.send:发送订阅消息

微信小程序发送模板消息还能使用uniformMessage.send接口么?

不能,需要通过订阅消息 subscribeMessage.send 接口发送.

订阅消息功能实现 wx.requestSubscribeMessage

使用代码

确定:accept:您已经开启订阅消息

取消: reject:您已经拒绝订阅消息

小程序订阅消息如何触发授权

模板消息和订阅消息

与「模板消息」不同的是,其是在用户点击触发或者支付成功之后,开发者可在 7天内推送1-3条服务通知。而「订阅消息」则需要用户主动订阅消息通知,开发者才可向用户推送,但不受时间限制,具体发送信息条数根据该能力的不同类型有不同标准。

订阅消息的好处:

  1. 选择权回到用户手中。在小程序中,「订阅消息」像是一个开关,需要用户主动点击授权之后,小程序才能向其推送服务通知,当然,用户也可以随时拒收该小程序的服务通知。而此前,用户只能被动地接收消息。

  2. 时长不受限制。「订阅消息」取消了7天内推送消息的时间限制,只要用户没有主动拒收消息推送,开发者就可以随时推送服务通知。对于服务周期超过7天的小程序而言,这就完美解决了此前的疑虑。

一次性订阅消息和长期性订阅消息

  1. 一次性订阅消息:用户订阅一次后,开发者可下发一条消息,不限时间。若用户勾选了“总是保持以上选择,不再询问”且点击了允许,那么以后都默认同意订阅这条消息。用户不再做多次选择,开发者也避免了更繁琐的提醒。
  2. 长期性订阅消息:用户订阅一次后,可长期下发多条消息。目前长期性订阅消息向政务、医疗、交通、金融、教育等线下公共服务开放,后续将综合评估行业需求和用户体验持续完善。(长期订阅消息只针对特定行业开放,所以普通开发者并无法使用)

图片:

总是同意

2020.09.15

使用订阅消息报错:The main switch is switched off?

关闭了订阅消息,结果报错{errCode: 20004, errMsg: “requestSubscribeMessage:fail The main switch is switched off”}

小程序的订阅消息总开关没有开,需要到配置页打开。

2020.09.19

坑来啦~

  1. 经过测试,知道了如果想要发送订阅消息,用户必须每次触发订阅消息的授权窗口,除非勾选了总是保持以上的选择,不在询问,感觉这样会给用户带来不好的体验.

  1. 必须用户主动触发

参考文档: