这份文档还在翻译中,预期年底前完成。欢迎您提供宝贵的意见及建议。

对短信进行故障排除

当您发送短信时,短信 API 会返回一个 JSON 响应,其中包含 message 对象的数组,每条消息一个:

{
    "message-count": "1",
    "messages": [
        {
            "to": "447700900000",
            "message-id": "0C000000217B7F02",
            "status": "0",
            "remaining-balance": "15.53590000",
            "message-price": "0.03330000",
            "network": "23410"
        }
    ]
}

status 字段告诉您消息是否已成功加入队列等待发送。状态为 0 表示成功;非零值表示出了点问题。

注意:API 响应中的 status 为 0 并不表示 Nexmo 传递了您的消息。请参阅还可能出现什么问题?

短信 API 错误代码

如果短信 API 返回一个非零的 status 值,请使用下表以确定出了什么问题:

status 含义 描述
0 成功 此消息已成功接受等待传递。
1 节流 您发送短信的速度超出帐户限制(请参阅什么是出站短信的吞吐量限制?)。
2 缺少参数 您的请求缺少必需的参数之一:fromtoapi_keyapi_secrettext
3 参数无效 一个或多个参数的值无效。
4 凭据无效 您的 API 密钥和/或密码不正确、无效或被禁用。
5 内部错误 处理此消息时平台中发生了错误。
6 消息无效 平台无法处理此消息,例如,无法识别的数字前缀。
7 禁止号码 您尝试向其发送消息的号码已停用,可能不会收到。
8 禁止合作伙伴帐户 您的 Nexmo 帐户已被暂停。请联系 support@nexmo.com
9 违反合作伙伴配额 您没有足够的积分来发送消息。请充值并重试。
10 现有绑定太多 与平台的同时连接数超出了您的帐户分配。
11 帐户未启用 HTTP 该帐户未配置短信 API,您应该改用 SMPP。
12 消息太长 消息长度超过了允许的最大长度。
14 签名无效 提供的签名无法验证。
15 发件人地址无效 您正在 from 字段中使用未经授权的发件人 ID。这是在北美地区最常见的情况。在北美地区,需要使用 Nexmo 长虚拟号码或短代码。
22 网络代码无效 提供的网络代码要么无法识别,要么与目标地址的国家/地区不匹配。
23 回调网址无效 提供的回调 URL 太长或包含非法字符.
29 未列入白名单的目的地 您的 Nexmo 帐户仍处于演示模式。在演示模式下,您必须将目标号码添加到列入白名单的目的地列表中。为您的帐户充值以消除此限制。
32 不允许签名和 API 密钥 签名的请求也可能不会显示 api_secret
33 号码已停用 您尝试向其发送消息的号码已停用,可能不会收到。

还可能出现什么问题?

如果 status 的值为零,并且您的消息仍未到达,则在实际传递过程中出了点问题。要知道您的消息是否送达预期的收件人,您需要从运营商处获得传递回执