发送首次下行的5G消息。
接口说明
前提条件
已通过 UpgradeToRCSSignature 接口将文本短信签名升级为 5G 消息签名。
已通过 CreateRCSTemplate 接口创建 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代码示例。
调试
授权信息
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| 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 |
Data 返回数据结构说明
Data 为发送结果数据,包含以下字段:
| 字段 | 类型 | 描述 | 示例 |
| RcsID | String | 5G 消息唯一 ID。每条消息无论上行或下行都会生成独立的 RcsID,不会重复 | 100000096034031_1552101_03304904325170151776946304855 |
| BizId | String | 发送回执 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
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。