SendRCS - 5G消息首次下行

更新时间:
复制 MD 格式

发送首次下行的5G消息。

接口说明

前提条件

使用说明

  • 支持发送纯文本、富媒体卡片等 5G 消息模板。

  • 首次下行消息无需关联上行消息 ID。

  • 如终端不支持 5G 消息,将自动回落为短信发送。

  • 发送结果通过回执报文推送,回执中携带 BizId 和 OutId。

支持范围

  • 支持运营商:中国移动。

  • 支持终端:需要终端系统或短信软件支持,且已开启相应开关。支持的终端系统或短信软件范围:
    • iPhone 11 及以上,且 iOS 18.1 以上。

    • 华为鸿蒙 HarmonyOS 2.0,或 EMUI 9.0~11.0,信息 APP 版本 11.1.0.551 及以上。

    • 小米 2~15,短信 APP 版本 12.3.2.7。

    • 荣耀 Magic OS 或 Magic UI 4.0 及以上,智能短信插件 8.0.1.300 及以上。

    • vivo Android 7.0 及以上,FuntouchOS 或 OriginOS 均可,快应用框架版本 1.09.40900 以上,短信 APP 6.0.0 以上。

    • OPPO ColorOS 11 以上,或 ColorOS 7.0 以上且安卓 10~11,快应用 5.7 以上,短信 APP 5.17 以上。

    • 三星 OneUI 4.1 以上,短信 APP 13.2.20.13。

  • 手机终端还需按机型开启 5G、RCS 信息、短信智能识别、图文短信、智慧信息服务、信息化卡片展示等开关。

QPS 限制

  • 本接口的单用户 QPS 限制为 1000 次/秒。超过限制,API 调用将会被限流,这可能会影响您的业务,请合理调用。

  • 消息发送最大速率 300 条/秒。超出消息发送最大速率后将在队列堆积,逐个发送。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

当前API暂无授权信息透出。

请求参数

名称

类型

必填

描述

示例值

SignName

string

短信签名名称。

阿里云5G消息

TemplateCode

string

模板 Code。

RCS_SMS_10001052

PhoneNumbers

string

11 位手机号。

13500001234

TemplateParam

string

模板参数。JSON 格式,如{"username":"小李","account":"1001112"}。

{"username":"小李","account":"1001112"}

OutId

string

外部流水扩展字段,在回执报文中会携带。

12391244932857

发送消息示例

以下示例均通过 SendRCS 接口发送消息。发送时需指定通过 CreateRCSTemplate 接口创建的 TemplateCode,并通过 TemplateParam 传入变量值。

示例 1:发送单卡片模板,无变量

对应 CreateRCSTemplate 接口创建模板示例 1 的单卡片模板,素材和文案均为常量,发送时无需传参。

{
  "PhoneNumbers": "13800138000",
  "SignName": "阿里云",
  "TemplateCode": "RCS_SMS_1721932656000xyz",
  "TemplateParam": "{}"
}

示例 2:发送多卡片模板,含 MEDIA 和 ANY 变量

对应 CreateRCSTemplate 接口创建模板示例 2 的多卡片轮播模板,发送时需传入素材编码和文案变量。

{
  "PhoneNumbers": "13800138000",
  "SignName": "阿里云",
  "TemplateCode": "RCS_SMS_1721932656000abc",
  "TemplateParam": "{\n  \"mediaCode1\": \"ASSET_1721932656000def\",\n  \"title1\": \"云服务器 ECS\",\n  \"desc1\": \"高性能计算实例,弹性扩展\",\n  \"mediaCode2\": \"ASSET_1721932656000ghi\",\n  \"title2\": \"云数据库 RDS\",\n  \"desc2\": \"稳定可靠的关系型数据库服务\"\n}"
}

说明:MEDIA 类型变量传入素材编码 assetCode,ANY 类型变量传入文本内容。

示例 3:发送全变量模板,RCS_ANY 模式

对应 CreateRCSTemplate 接口创建模板示例 3 的全变量模板,发送时传入完整的富媒体 JSON 结构。

{
  "PhoneNumbers": "13800138000",
  "SignName": "阿里云",
  "TemplateCode": "RCS_SMS_1721932656000full",
  "TemplateParam": "{\n  \"Content\": \"{\\n  \\\"Cards\\\": [\\n    {\\n      \\\"MediaCode\\\": \\\"ASSET_1721932656000xyz\\\",\\n      \\\"Title\\\": \\\"动态标题\\\",\\n      \\\"Description\\\": \\\"动态描述\\\"\\n    }\\n  ],\\n  \\\"Layout\\\": {\\n    \\\"CardOrientation\\\": \\\"VERTICAL\\\"\\n  }\\n}\"\n}"
}

说明:Content 的值为完整的富媒体 JSON 字符串,需进行转义。

示例 4:发送含悬浮菜单全变量的模板,MENU_ANY 模式

对应 CreateRCSTemplate 接口创建模板示例 4 的菜单全变量模板,发送时传入完整的悬浮菜单 JSON 字符串。

{
  "PhoneNumbers": "13800138000",
  "SignName": "阿里云",
  "TemplateCode": "RCS_SMS_1721932656000menu",
  "TemplateParam": "{\n  \"menu\": \"{\\\"suggestions\\\":[{\\\"reply\\\":{\\\"displayText\\\":\\\"查看活动详情\\\",\\\"postback\\\":{\\\"data\\\":\\\"uuid-detail\\\"}}},{\\\"reply\\\":{\\\"displayText\\\":\\\"取消订阅\\\",\\\"postback\\\":{\\\"data\\\":\\\"uuid-cancel\\\"}}}]}\"\n}"
}

说明

  • MENU_ANY 类型变量的值是完整的悬浮菜单 JSON 字符串,需转义,而非单个按钮的显示文字,运行时整体替换模板中的${menu}。

  • 传入的菜单 JSON 需符合悬浮菜单格式规范,包括以 suggestions 为根字段、按钮个数不超过 10 个、支持的交互动作类型等,发送时会做格式校验。

  • 若渲染后菜单内容为空字符串,报错 isv.INVALID_PARAMETERS,即消息内容不能为空。

示例 5:完整交互流程,发送后用户点击并产生上行回执

CreateRCSTemplate 接口创建模板示例 5 的综合服务模板为例,展示完整的交互流程。

第一步:发送消息

{
  "PhoneNumbers": "13800138000",
  "SignName": "阿里云",
  "TemplateCode": "RCS_SMS_1721932656000service",
  "TemplateParam": "{}"
}

第二步:用户点击卡片内的不同按钮,平台收到上行消息

用户操作上行消息格式
点击确认订购按钮,reply 类型{"response":{"reply":{"displayText":"确认订购","postback":{"data":"uuid-confirm"}}}}
点击访问官网按钮,urlAction 类型{"response":{"action":{"displayText":"访问官网","postback":{"data":"uuid-visit"}}}}
点击拨打客服按钮,dialerAction 类型{"response":{"action":{"displayText":"拨打客服","postback":{"data":"uuid-call"}}}}
点击发送位置按钮,requestLocationPush 类型{"response":{"action":{"displayText":"发送位置","postback":{"data":"uuid-location"},"location":{"latitude":30.274,"longitude":120.155}}}}

说明:reply 类型会触发上行消息回传 displayText 和 postback.data;urlAction 和 dialerAction 由终端直接执行打开网页或拨号,同时回传上行消息;requestLocationPush 需用户授权后回传经纬度。

返回参数

名称

类型

描述

示例值

object

AccessDeniedDetail

string

访问被拒绝时返回的详细信息。

None

RequestId

string

本次请求的 ID。

A90E4451-FED7-49D2-87C8-00700A8C4D0D

Message

string

状态码的描述。

OK

Data

object

返回数据,具体请参见下方 Data 返回数据结构说明。

Code

string

请求状态码。返回 OK 代表请求成功。

OK

Success

boolean

是否调用成功。

  • true:调用成功。

  • false:调用失败。

true

Data 返回数据结构说明

Data 为发送结果数据,包含以下字段:

字段类型描述示例
RcsIDString5G 消息唯一 ID。每条消息无论上行或下行都会生成独立的 RcsID,不会重复100000096034031_1552101_03304904325170151776946304855
BizIdString发送回执 ID,即发送流水号。下行发送时返回,在下行回执报文中原样携带,用于关联发送请求与回执217124476946304663

返回示例

{
  "Code": "OK",
  "RequestId": "A90E4451-FED7-49D2-87C8-00700A8C4D0D",
  "Success": true,
  "Data": {
    "RcsID": "100000096034031_1552101_03304904325170151776946304855",
    "BizId": "217124476946304663"
  }
}

示例

正常返回示例

JSON格式

{
  "AccessDeniedDetail": "None",
  "RequestId": "A90E4451-FED7-49D2-87C8-00700A8C4D0D",
  "Message": "OK",
  "Data": {
    "test": "test",
    "test2": 1
  },
  "Code": "OK",
  "Success": true
}

错误码

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情