You need to enable JavaScript to run this app.
导航

短信状态报告回调

最近更新时间2024.03.15 17:51:27

首次发布时间2023.01.17 16:24:55

您可以在短信服务控制台的回执配置中设置回调 URL,接收短信服务异步返回的短信状态报告,以确认短信发送是否成功。

注意事项

回调地址需要符合以下条件,才可以成功接收短信服务发送的短信状态报告。

  • 使用 HTTP/HTTPS URL。

  • 短信服务可以直接访问回调地址,即回调地址具备公网访问能力。

  • 如果回调地址所在服务器设置了防火墙,请放行来自短信服务的请求。

准备工作

在您接收短信服务的回调消息之前,需要登录短信服务控制台配置用于接收回调消息的 URL。

  1. 登录短信服务控制台

  2. 在左侧导航栏,选择通用管理 > 回执配置

  3. 回执配置页面,编辑默认状态报告地址

    设置您用于接收回调消息的 URL。URL 格式为http(s)://<您的回调地址>

在短信服务控制台设置回调地址后,如果您调用 SendSms 接口发送短信,则短信服务会异步向回调地址返回短信状态报告。

回调请求说明

当短信服务返回短信状态报告时,会向回调地址发送 POST 请求。本章节介绍请求 Header 和 Body 包含的参数说明。

参数取值描述
Content-Typeapplication/json;charset=utf-8定义网络文件的类型和网页的编码。
Accept-Encodinggzip, deflate采用指定的压缩格式传输数据。
Accept*/*指定客户端希望接收的数据类型。

Body

请求体整体是一个 JSON 数组。

参数类型描述
accountstring火山引擎账号
sub_accountstring消息组ID
status_codestring发送状态,"0"代表成功,其余表示失败
descriptionstring状态描述
signaturestring签名
template_idstring模板ID
mobilestring手机号
channel_typestring短信类型,可能值:CN_OTP
message_idstring发送时返回的message_id字段
msg_countint拆分条数
service_idstring发送通道,非必传,国际/港澳台短信没有该字段
extstring发送时传递的Tag字段
send_timeint64短信发送时间,milliseconds时间戳
recv_timeint64短信接收时间,milliseconds时间戳
mccmncstring移动网络提供者唯一代码
iso_codestringISO 3166-1 国家代码

回调结果示例

[
  {
    "account": "200****",
    "sub_account": "1504****",
    "signature": "短信服务",
    "mobile": "188******",
    "channel_type": "CN_OTP",
    "service_id": "106966940****",
    "send_time": 1669171012444,
    "template_id": "SPT_0fa7****",
    "ext": "123456",
    "message_id": "bde1b10d-19cf-460f-abcd-26231a82****",
    "recv_time": 1669171015941,
    "status_code": "0",
    "description": "发送成功",
    "msg_count": 1,
    "mccmnc": "46002",
    "iso_code": "CN"
  }
]

Status_code及说明

Code描述处理建议
NE:0100非法手机号建议更换手机号码后尝试重新下发
NE:0101空号请确认手机号码是否为正常可用
NE:0102号码漫游、不在服务状态建议用户开通漫游权限重新尝试

NE:0103

终端异常,如信号不稳定、手机对短信支持异常等

请检查手机当前接收状态是否正常,或重启手机刷新网络,尝试重新获取。

NE:0104终端无短信服务请确认手机号码是否为正常状态,是否开通短信功能。

NE:0105

关机、停机、号码暂停服务

请确认手机终端是否正常开机可用

NE:0106携号转网问题建议尝试重新发送,或联系火山引擎客服处理
CR:0200内容拦截内容中包含管控关键词,请对文案进行优化

CR:0201

黑名单拦截

用户已退订此签名或命中运营商平台黑名单规则,建议征求用户意见联系运营商平台解除黑名单

CR:0202频次管控请合理控制号码的下发频次
CR:0203时间段管控请错开管控时间段进行信息下发
CR:0205审核拦截内容不符合管控要求,请优化文案
CR:0206超流速拦截建议降低短信提交的QPS
CR:0207压测模式拦截压测模式不实际下发,若需关闭压测模式,请联系火山引擎客服。
CR:0208超流量拦截超出流量管控限制
CR:0212签名拦截请更换签名下发或重新申请符合签名规范的签名
CR:0213重复发送相同内容短时间内,请不要对同一个手机号下发相同的内容
CR:0214高风险手机号流量高风险,可能正在被刷

CR:0215

签名报备问题(一码一签)

请联系火山引擎客服完善一码一签报备

CR:0216

营销退订内容不符合规定

请确保文案结尾是“拒收请回复R"

CE:0300

模板参数格式问题

请检查模板变量报文格式是否正确

CE:0301内容过长或未填写请对短信文案长度进行优化
CE:0302长短信缺失请检查长短信拆分和提交是否正确
CE:0305不支持发送的运营商请联系火山引擎客服确认
SY:0500系统异常若个别下发失败,建议尝试重新发送;若出现大量失败,请联系火山引擎客服进行确认

SY:0501

网关问题

若个别下发失败,建议尝试重新发送;若出现大量失败,请联系火山引擎客服进行确认

UN:0900

未知错误

若个别下发失败,建议尝试重新发送;若出现大量失败,请联系火山引擎客服进行确认

返回值

要求用户侧接收成功后,返回 httpStatus为200,否则火山侧会认为回执失败

常见问题

  1. 回执推送失败后会重试几次?

答:10次,时间间隔:[0,5,10,30,120,300,1200,3600,21600,86400],单位秒。

  1. 返回httpStatus为200的格式是怎样的?

答:http协议里的statuscode返200即可,不是在请求体中返回。