/mini-subscribe-message

这是小程序订阅消息快速开发指引,其中演示了如何上手消息订阅的订阅、推送、支付订阅功能

Primary LanguageJavaScript

  这是一份小程序消息订阅快速开发指引,其中演示了如何快速上手消息订阅的订阅、推送、支付订阅功能。

  根据官方指南,小程序订阅消息功能接入一共分为三个步骤。

第一步:获取模板 ID

  在微信公众平台手动配置获取模板 ID:

  登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。

获取模板ID

第二步:获取下发权限

const templateId = 'FQAiSMdR5xibmnWL7zzIK26Px7vnHFY-40Oemx2rbOQ'; // 订阅消息模版id

wx.requestSubscribeMessage({
        tmplIds: [templateId],
        success(res) {
          if (res[templateId] == 'accept') {
            //用户同意了订阅,允许订阅消息
            wx.showToast({
              title: '订阅成功'
            })
          } else {
            //用户拒绝了订阅,禁用订阅消息
            wx.showToast({
              title: '订阅失败'
            })
          }
        },
        fail(res) {
          console.log(res)
        },
        complete(res) {
          console.log(res)
        }
      })

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

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

####下面演示 HTTPS 调用,使用接口模拟服务端推送订阅消息。

  Step 1:使用appid和secret生成access_token,使用Get请求:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxx&secret=xxx,返回结果如下:

access_token

  Step 2:使用上面获取到的access_token,发起Post请求测试推送:https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=(access_token),请求和返回结果如下:

推送订阅消息参数

  订阅推送消息报错43101,表示该小程序用户未允许接收订阅消息,若订阅消息成功则返回结果如下:

推送订阅消息成功返回结果

  Step 3:打开微信,在服务通知中查看小程序订阅消息: 接收到的订阅消息

  详见服务端消息发送接口 subscribeMessage.send

小结:

  1、调用订阅消息需在tab绑定事件(或支付)中调用,否则不允许调用; 不允许调用订阅消息方法

  2、用户点击允许但未勾选不再提醒,则只能推送一次性提醒,以后需要推送则需要再次发起申请订阅流程。

小程序订阅消息申请对话框.png

  3、发起过一次订阅申请之后用户在设置中不允许通知,则无法弹出申请对话框: 图片.png

  4、发起一次订阅消息只允许申请1-3个模板,超过3个将报错: 同时申请超过3条订阅消息模板报错.png

  5、如果只需要小程序端允许接收订阅消息,而不需要在小程序端发起推送订阅消息,则不需要小程序端执行第三步,可由服务端发起推送;

  6、调用接口下发订阅消息有HTTPS 调用和云调用两种方式,如使用 HTTPS 调用,则不用使用云调用方式;

总结:小程序订阅消息流程见下图。

小程序订阅消息流程.png

完整代码见GitHab:小程序消息订阅

本代码中存在的问题:

  1、使用个人账号无法使用微信支付功能,未验证支付成功后是否能调用订阅消息。

  关于消息订阅内容介绍,请看关于小程序订阅消息,看这篇就够了!

参考资料:

  1、微信小程序订阅消息开发之云开发

  2、云开发快速接入小程序订阅消息,开发开课提醒小程序