开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
基础 api
开放能力 api
支付
用户授权
会员
周期扣款
商家会员卡
消息
模板配置
支付宝卡包
交易组件
小程序商品
开发 > api > 开放能力 api > 消息 > my.requestsubscribemessage
评论 (7)
收藏
我的文档
设置

my.requestsubscribemessage(object object)

基础库  或更高版本; 若版本较低,建议采取 兼容处理

支小宝客户端 支持

安诊儿客户端 支持

主体: 企业支付宝小程序个人支付宝小程序

唤起客户端小程序消息订阅界面。

订阅界面是根据当前小程序在 配置的消息模板 id 来展示对应消息的订阅选项(参考接入流程第 4 步)。

消息订阅分为一次性和长期性:
一次性:使用一次性消息模板订阅,每次向用户发送消息都需要用户在订阅界面点击同意后才可以发送;
长期性:使用长期性消息模板订阅,用户同意订阅后,可以多次向订阅用户发送消息。

效果示例

唤起订阅界面时,一次性消息订阅和长期性消息订阅的界面不同。通过点击胶囊按钮(右上角 “···” ),在打开面板中进入设置,在设置的消息管理中可修改消息订阅的接收状态。

一次性消息订阅

长期性消息订阅

长期性消息订阅确认

消息管理

消息订阅

为了确保准确接入“消息订阅”的能力, 需要按照 开发设置 > 配置主营行业 > 配置消息模板 > api调用 > 发送消息 的流程接入。
1
开发设置 开放平台
2
配置主营行业 开放平台
3
配置消息模板 商家平台
4
api调用 小程序
5
发送消息 服务端

是否必须: 是。

使用 主账号 登录 ,选择当前开发的小程序,根据下面的说明进行相关开发配置:

  • 接口加签方式:必填

  • 应用网关:必填

  • 支付宝网关:必填

  • 接口内容加密方式:选填,建议配置

  • 服务器ip白名单:选填,涉及到敏感操作时建议配置

具体可参考文档 开发设置

是否必须: 是。

使用 主账号 登录 ,选择当前开发的小程序,在 “小程序信息” 中配置主营行业,选择的主营行业不同,在配置消息模版(第 4 步)时,接入订阅消息模板列表展示的模板不同,具体可参考文档 配置小程序主营行业

是否必须: 是。

使用 主账号 登录 ,选择当前开发的小程序进行配置,具体可参考文档 领用订阅消息模板

是否必须: 是。

在小程序中调用 api ,参数属性 entityids 中传入领用的消息模版 id(最多三个),调用后弹出订阅界面。查看示例

是否必须: 是。

在用户授权完成(开发接入完成)之后,可以通过以下两种方式发送消息:

  1. 通过服务端调用 alipay.open.app.mini.templatemessage.send 向支付宝发送对应模板的消息。

  2. 通过 主账号 登录 ,进入 运营中心 选择对应小程序,点击左侧菜单中的 ”消息“,在订阅消息列表中,用 “配置发送” 发送消息,无需服务端编写代码。

订阅消息发送后,可在 支付宝凯发k8官方网娱乐官方首页 、消息盒子、app push 等位置收到消息提醒。

object object

查看示例

属性 类型 默认值 必填 描述
entityids array -

需要订阅的消息模板 id 集合(注意:1、一次性模板 id 和长期性模板 id 不可同时使用,2、一次最多传入三个模板 id)

thirdtypeappid string -

模板小程序 appid,仅在服务商代调用场景下需要传入

success function -

调用成功的回调函数

fail function -

调用失败的回调函数

complete function -

调用结束的回调函数(调用成功、失败都会执行)

success 回调函数

参数

object res

查看示例

属性 类型 描述
behavior string

用户订阅操作结果

枚举值 描述 兼容性
subscribe

订阅成功

-
cancel

取消订阅,触发 fail 回调

-

订阅失败,触发 fail 回调

-
show boolean

本次订阅过程是否弹出了订阅面板。
true:弹出;false:未弹出

keep boolean

一次性订阅,是否勾选 总是保持以上选择,不再询问。
true:勾选;false:未勾选

refuse boolean

长期订阅,是否点击 拒绝,不再询问。
true:点击;false:未点击

result object

订阅数据

属性 类型 描述
subscribeentityids array

仅在订阅成功场景下存在,表示订阅成功的模板列表

subscribedentityids array

最终订阅成功的模板列表

unsubscribedentityids array

未订阅的模板列表

currentsubscribedentityids array

本次新增订阅成功的模板列表

entityid string | unknown

动态键,具体订阅数据建议通过 result 字段获取。
静默订阅( show 为 false )时,返回状态为上一次的订阅结果。
已勾选消息为 ‘accept’;未勾选的消息为 ‘reject’

fail 回调的参数为 object,error 属性为错误码,errormessage 属性为错误消息。

错误码 错误消息 凯发app官方网站的解决方案
-1 订阅失败/校验模板列表失败

系统默认错误。联系支付宝凯发app官方网站的技术支持解决。

10 系统异常

系统问题。联系支付宝凯发app官方网站的技术支持解决。

11 用户取消订阅

用户在订阅面板中点击了取消。正常交互,无须特别处理。

15 当前有活跃的订阅授权窗口,此次调用不会弹窗,无订阅结果返回

连续调用两次此接口时,第二次调用就会报错。请检查调用此 api 次数,确保当前有活跃的订阅授权窗口时,不再次调用此 api。

203 无效的参数

请检查入参 entityids 是否满足要求。

  • 入参 entityids 必填且为数组。
  • 入参 entityids 中的模板 id 不超过 3 个,不少于 1 个。
402 应用暂不能提供服务

请在 查看小程序状态是否已下架,或联系支付宝凯发app官方网站的技术支持解决。

100201 调用次数超限

当前系统订阅频繁,接口限流,可引导用户稍后再试。

106002 模板列表中同时存在一次性/长期订阅模板

请检查传入的消息模板 id ,传入的消息模板 id 必须同为一次性消息模板 id ,或同为长期性消息模板 id 。

106008 模板列表中存在非法/无效的模板 id

请检查入参 entityids 的模板 id 是否为当前小程序领用的模板 id 。

my.requestsubscribemessage(object object)
success 参数
fail 参数
my.requestsubscribemessage({
  entityids: [
    'ac768fca1ce245ccae9404bb5243c49b',
    '9aa357acb7c6434aba294aded1cdfb7c',
  ],
  success: res => {
    console.log('接口调用成功的回调', res);
  },
  fail: err => {
    console.log('接口调用失败的回调', err);
  }
});
{
  "success": true,
  "stat": "ok",
  "behavior": "subscribe",
  "result": {
    "subscribeentityids": [
      "cbc3487d54a648e0b38e334b2b047dd3"
    ],
    "subscribedentityids": [
      "cbc3487d54a648e0b38e334b2b047dd3"
    ],
    "unsubscribedentityids": [],
    "currentsubscribedentityids": [
      "cbc3487d54a648e0b38e334b2b047dd3"
    ]
  },
  "show": true,
  "keep": false,
  "refuse": false,
  "cbc3487d54a648e0b38e334b2b047dd3": "accept"
}
{
  "success": false,
  "stat": "ok",
  "behavior": "cancel",
  "result": {
    "entitylist": [
      "cbc3487d54a648e0b38e334b2b047dd3"
    ], 
    "subscribedentityids": [],
    "unsubscribedentityids": [
      "cbc3487d54a648e0b38e334b2b047dd3"
    ],
    "currentsubscribedentityids": []
  },
  "show": true,
  "keep": true,
  "refuse": false,
  "error": 11,
  "errorcode": 11,
  "errormessage": "用户取消订阅",
  "cbc3487d54a648e0b38e334b2b047dd3": "accept"
}

entitylist 是传入的模板 id 集合,仅在取消订阅场景下返回。

  • tip
    基础库版本低于 2.7.15,不能在 web-view 页面调用,否则订阅界面会被遮盖。
  • tip
    基础库 v1.x 从 开始支持,低版本需要做 兼容处理,使用前可使用 caniuse 判断是否支持。
  • tip
    长期性消息订阅,点击 “拒绝,不再询问” 会进入成功回调。

q:调用 my.requestsubscribemessage 报 “my.requestsubscribemessage is not a function”,或 my.caniuse 检测为 false 是什么原因?

a:

在 ide 中点击模拟器上方的 “展开面板(四个小方块)” 按钮 ,点击 “设置” 查看支持的基础库版本,若不满足此 api 的基础库版本使用限制,可通过升级 ide 版本来支持更多版本基础库。

q:消息订阅发生后,如何获取订阅信息?

a:

获取消息订阅信息,可通过如下方式:

  • 调用 my.requestsubscribemessage 触发订阅时,可以通过其回调实时获取订阅结果。
  • 需要服务端判断订阅关系时,可以通过 alipay.open.app.messagetemplate.subscribe.query 获取模版订阅关系列表。
  • 需要在小程序中判断订阅状态时,可以通过 my.getsetting 返回的字段 subscriptionssetting 获取订阅状态。

q:订阅一次性消息时选择“保持以上选择,不再询问”,或订阅长期性消息,用户点击同意后,订阅消息面板是否还可以再弹出?

a:

当用户有此操作时,订阅面板将不再弹出。若需要再此弹出订阅面板,可点击小程序 ”胶囊按钮(右上角三个点)” ,再点击 “设置”,在 “消息管理” 中切换消息接收状态,切换后效果如下:
1、一次性消息订阅在切换消息状态后,意味着更改了保持的选择,在下次订阅时面板会再弹出。
2、长期性消息订阅的消息,当切换到 “不接收” 时,意味着用户更改了所选消息长期接收的状态,下次订阅时面板会再弹出来。

q:如何订阅三个以上消息?

a:

目前小程序支持一次订阅消息最多三个,若超过三个,可分多次订阅,分别触发。

q:是否还可以使用插件 subscribe-msg 订阅消息?

a:

插件 subscribe-msg 已停止维护,建议使用 my.requestsubscribemessage。

q:为什么已经勾选了「总是保持以上选择,不再询问」的复选框后,点击「取消」按钮,下次还会弹出订阅消息面板?

a:

因为「取消」按钮只是关闭订阅消息面板。
如果不想订阅消息不想再弹出订阅消息面板,可以取消勾选模板的同时再勾选「总是保持以上选择,不再询问」 后点击「确定」按钮。如图:
示例图

内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图