微信小程序之订阅消息推送

这篇具有很好参考价值的文章主要介绍了微信小程序之订阅消息推送。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、开通订阅消息

2、请求用户授权

2.1、wx.requestSubscribeMessage(Object object)

2.2、wx.requestSubscribeDeviceMessage(Object object)

3、发送订阅信息

3.1、调用方式

3.2、云调用接口方法

3.3、请求参数

3.4、返回值

3.5、代码示例

1、开通订阅消息

登录小程序之后点击功能下的订阅消息点击开通

微信小程序之订阅消息推送

选择公共模板库的一次性订阅

微信小程序之订阅消息推送

我选择是注册模板,模板ID就是我所需要的东西

微信小程序之订阅消息推送

2、请求用户授权

        订阅消息授权时,只能是用户点击或者支付完成后才可以调起来授权弹窗,详情请见微信官方文档-requestSubscribeMessage

2.1、wx.requestSubscribeMessage(Object object)

        调起客户端小程序订阅消息界面,返回用户订阅消息的操作结果。当用户勾选了订阅面板中的“总是保持以上选择,不再询问”时,模板消息会被添加到用户的小程序设置页,通过 wx.getSetting 接口可获取用户对相关模板消息的订阅状态。

参数

属性 类型 默认值 必填 说明
tmplIds Array 需要订阅的消息模板的 id 的集合,一次调用最多可订阅3条消息。每个 tmplId 对应的模板标题需要不相同,否则会被过滤。
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行

object.success 回调函数

属性 类型 说明
errMsg String 接口调用成功时 errMsg 值为'requestSubscribeMessage:ok'
[TEMPLATE_ID: string] String

[TEMPLATE_ID]是动态的键,即模板id,值包括'accept'、'reject'、'ban'、'filter'。

'accept'表示用户同意订阅该条 id 对应的模板消息,

'reject'表示用户拒绝订阅该条 id 对应的模板消息,

'ban'表示已被后台封禁,

'filter'表示该模板因为模板标题同名被后台过滤。

例如 { errMsg: "requestSubscribeMessage:ok", zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: "accept"} 表示用户同意订阅zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE这条消息

object.fail 回调函数

属性 类型 说明
errMsg String 接口调用失败错误信息
errCode Number 接口调用失败错误码

错误码

errCode errMsg 说明
10001 TmplIds can't be empty 参数传空了
10002 Request list fail 网络问题,请求消息列表失败
10003 Request subscribe fail 网络问题,订阅请求发送失败
10004 Invalid template id 参数类型错误
10005 Cannot show subscribe message UI 无法展示 UI,一般是小程序这个时候退后台了导致的
20001 No template data return, verify the template id exist 没有模板数据,一般是模板 ID 不存在 或者和模板类型不对应 导致的
20002 Templates type must be same 模板消息类型 既有一次性的又有永久的
20003 Templates count out of max bounds 模板消息数量超过上限
20004 The main switch is switched off 用户关闭了主开关,无法进行订阅
20005 This mini program was banned from subscribing messages 小程序被禁封
20013 Reject DeviceMsg Template 不允许通过该接口订阅设备消息

代码示例

    var TemplateID = 'xxxxxxxx'
    var TemplateStatus = wx.getStorageSync('TemplateID')
    if(TemplateStatus != 'accept'){
      wx.requestSubscribeMessage({
        tmplIds: [TemplateID],
        complete (res) {
          console.log("complete: ",res)
          wx.setStorageSync('TemplateID', res[TemplateID])
        },
      })
    }

使用效果

微信小程序之订阅消息推送

 可以看到,这里显示的就是我们添加的 ‘注册成功通知’的模板。 

微信小程序之订阅消息推送

真机上多了一个 ‘总是保持以上选择,不再询问’

2.2、wx.requestSubscribeDeviceMessage(Object object)

        订阅设备消息接口,调用后弹出授权框,用户同意后会允许开发者给用户发送订阅模版消息。当用户点击“允许”按钮时,模板消息会被添加到用户的小程序设置页,通过 wx.getSetting 接口可获取用户对相关模板消息的订阅状态。

        当前未使用

3、发送订阅信息

        回复信息时需要使用用户的openid

        详情请见微信官方文档: 微信官方文档-subscribeMessage.send

3.1、调用方式

  • HTTPS 调用
  • 云调用

当前使用云调用

3.2、云调用接口方法

openapi.subscribeMessage.send

3.3、请求参数

属性 类型 默认值 必填 说明
touser string 接收者(用户)的 openid
templateId string 所需下发的订阅模板id
page string 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
data Object 模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
miniprogramState string 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
lang string 进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN

3.4、返回值

返回的 JSON 数据包

属性 类型 说明
errCode number 错误码
errMsg string 错误信息

errCode 的合法值

说明
0 成功

异常

属性 类型 说明
errCode number 错误码
errMsg string 错误信息

errCode 的合法值

说明
40003 touser字段 openid 为空或者不正确
40037 订阅模板 id 为空不正确
43101 用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系
47003 模板参数不准确,可能为空或者不满足规则,errmsg会提示具体是哪个字段出错
41030 page路径不正确,需要保证在现网版本小程序中存在,与 app.json 保持一致

3.5、代码示例

在云函数中调用,UserOpenid是微信用户的openid,TemplateID是模板id

    try {
      const result = await cloud.openapi.subscribeMessage.send({
          "touser": UserOpenid,
          "templateId": TemplateID,
          "lang": 'zh_CN',
          "data": {
            "date2": {
              "value": '2015年01月05日'
            },
            "thing4": {
              "value": '阿里巴巴'
            },
            "character_string9": {
              "value": '123456789'
            }
          },
        })
      return result
    } catch (err) {
      return err
    }

其中date2、thing4、character_string9是根据小程序中的模板定义的

微信小程序之订阅消息推送

 效果如图:

微信小程序之订阅消息推送文章来源地址https://www.toymoban.com/news/detail-484573.html

到了这里,关于微信小程序之订阅消息推送的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序订阅消息推送(附带后台java代码)

    官方文档: 小程序前端:点击进入 小程序服务端:点击进入 一,代码实现(后端) ①定义实体类 ②定义HttpUtil类(Get请求) ③验证token过期时间 ④小程序发送消息 AuthUtil工具类

    2024年02月14日
    浏览(45)
  • 如何为微信小程序添加订阅消息和推送通知功能

    为微信小程序添加订阅消息和推送通知功能是非常有用的,它可以让用户在重要的事件发生时及时地收到通知。在本文中,我们将详细介绍如何为微信小程序添加这两种功能。 一、订阅消息 订阅消息是一种新的消息类型,用户可以选择是否订阅它们。订阅消息一般用于向用

    2024年02月04日
    浏览(74)
  • uni-app中实现微信小程序/公众号订阅消息推送功能

    👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的编码爱好者 大家好,我是全栈 IT 工程师摘星人 欢迎分享 / 收藏 / 赞 / 在看! 开发业务时时常遇到需要向用户发送一些通知,如欠费通知、会员到期通知等等。

    2024年02月02日
    浏览(136)
  • 手把手教你实现微信小程序向特定用户推送一次性订阅消息

    目前有一个已 微信认证 的 订阅号 类型公众号,一个 微信认证 小程序,小程序和公众号互相关联。尚不清楚是否必须微信认证或特定类型,因为目前没遇到类型不匹配或相关的问题,发送微信小程序一次性订阅消息的相关限制较少 1、功能介绍 订阅消息推送位置:服务通知

    2024年02月08日
    浏览(55)
  • Java开发微信小程序订阅消息推送

    使用到开源工具WxJava 这里环境使用到springboot 框架,废话不多说直接上干货。 pom.xml引用 application配置 templateId具体申请在微信公众平台 具体如下   wx配置代码编写 模板代码编写 这里注意模板对应的字段 具体代码  然后和前端一配合就完事了,非常简单

    2024年02月16日
    浏览(52)
  • 微信公众号 - Java推送小程序订阅消息给用户_java 通过微信公众号发送订阅通知

    不啰嗦,我们直接开始! 本文使用体验版小程序进行调试。 1、登录微信公众平台 点开下面链接,使用微信扫码 微信公众平台 然后选择一个小程序并登录 2、在小程序后台找到Appid、AppSecret、Token、EncodingAESKey等参数 AppSecret忘记了可以自行重置 往下翻,在消息推送这儿能看到

    2024年04月26日
    浏览(49)
  • java实现微信小程序订阅和推送订阅信息

    1、进入微信公众平台,扫码登录 2、获取appid和secret 3、配置模板 在对应yml中配置 前端调用弹出是否订阅时调用后台服务 1、controller 2、后端接参AddSinosoftWxSubscribeParam 3、service 一般时通过时间或者调度进行调用服务,以下只进行服务实现展示 1、在domain层写send方法 1、首先小

    2024年02月13日
    浏览(51)
  • 微信小程序订阅消息

    subscribeMessage.send | 微信开放文档 由于业务需求 , 需要实现小程序订单状态发送给用户 , 于是微信小程序发送订阅消息就被找到了 这里前端是使用了uniapp , 具体实现方式不清楚,就不瞎bb了 后端这里就是上面的接口文档 , 总共需要是三个步骤 1. 获取小程序 appid 和 密钥 2. 订阅消

    2024年02月09日
    浏览(55)
  • 微信小程序--订阅消息

    关于小程序订阅消息之一次性订阅: 一次性订阅是指授权一次方可接收一次消息;这个最好的应用场景就是自己给自己发送消息,比如订单,当自己下单成功时,调用此接口,会在微信服务消息收到下单成功通知等具体详情。 如果是给别人发,一次性订阅就不适合,类似你

    2024年02月07日
    浏览(43)
  • uniapp 小程序订阅消息 一次订阅多个 wx.requestSubscribeMessage 微信小程序订阅消息

    如图所示,订阅消息 官方文档: 小程序订阅消息官方文档 1,消息类型 (1) 一次性订阅消息 用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。 (2) 长期订阅消息 用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息

    2024年02月09日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包