美文网首页思路来源产品设计微信小程序
【干货】快速接入小程序订阅消息(附源代码)

【干货】快速接入小程序订阅消息(附源代码)

作者: Haraway | 来源:发表于2019-11-29 16:47 被阅读0次

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

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

    第一步:获取模板 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、用户点击一次允许订阅消息后,发送一条订阅消息,即消费一条消息后,不能再发送达消息给用户,报错43101 user refuse to accept the msg。

      6、在一次订阅中,点击“总是保持以上选择,不再询问”+“允许”之后,只能收到一条消息通知。 勾选总是,只是在下次调用wx.requestSubscribeMessage的时候帮你默认做出选择,还是需要调用了这个才能收到消息,而不是做出一次选择后就高枕无忧了。

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

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

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

    小程序订阅消息流程.png

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

    本代码中存在的问题:

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

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

    参考资料:

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

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

    相关文章

      网友评论

        本文标题:【干货】快速接入小程序订阅消息(附源代码)

        本文链接:https://www.haomeiwen.com/subject/tusgwctx.html