预警通知返回码速查:常见错误码与排查指南

调用互亿无线预警通知接口后,服务端会返回JSON结果,其中code字段是判断成功与否的关键。返回JSON里除了code,通常还带msg描述与流水号,msg往往是定位问题的线索。联调时看到code不是2,很多同学不知道从何下手。本文整理常见返…

调用互亿无线预警通知接口后,服务端会返回JSON结果,其中code字段是判断成功与否的关键。返回JSON里除了code,通常还带msg描述与流水号,msg往往是定位问题的线索。联调时看到code不是2,很多同学不知道从何下手。本文整理常见返回码含义与排查思路,帮助开发者快速定位发送问题。

成功返回:code=2

当返回code=2时,表示预警提交成功,系统同时返回流水号(短信为smsid),用于后续追踪发送状态。注意提交成功不等于手机一定收到,送达状态需通过回调或控制台查询。语音电话是否被接听、通话时长多少,也要以回调数据为准。

常见错误返回码与排查

  • 认证类错误:account或password错误,检查APIID/APIKEY是否填反、是否多空格;
  • 手机号格式错误:mobile含空格、加号或位数不对,规范化后重试;
  • 内容相关错误:自定义短信未报备模板、content为空或含敏感词;
  • 余额不足:账户测试额度或套餐用完,需充值或领取免费额度;
  • 频率限制:短时间并发过高,需加限流与重试间隔;
  • 模板错误:使用templateid时变量数量或分隔符不符,核对模板变量数;
  • 网络超时:请求未到达服务端,检查公网出口与DNS,设置超时与重试;
  • 终端拦截:个别号码收不到,多为手机管家拦截,可改用闪信或语音通道;

返回结果示例

成功提交后返回大致结构如下:

{
  "code": 2,
  "msg": "提交成功",
  "smsid": "202609281234567890"
}

排查时先打印完整返回体,根据code与msg对照上表定位。遇到不确定的错误码,可连同请求参数联系技术支持核对。

排查建议

  • 先用控制台在线调试工具或curl手动发一条,排除代码问题;
  • 把APIID、手机号、content分别替换为测试值,二分定位;
  • 保留完整请求与响应日志,方便技术支持协助;
  • 按成功计费,失败不计费,排查阶段不会产生额外成本;
  • 连续失败不要盲目重发,先看返回msg定位根因,避免触发限流。

常见返回码对照表

返回JSON中的code字段是定位问题的入口。下表整理了联调阶段高频遇到的返回码类别与对应排查方向:

类别典型表现排查方向
成功code=2,带smsid提交受理,送达状态看回调
认证失败提示账号或密码错误检查APIID/APIKEY是否填反、是否多空格
手机号错误提示号码格式不正确去掉空格、加号,确认11位国内号码
内容审核提示模板未报备或内容不合规先在控制台报备签名与模板
余额不足提示账户余额或额度不足充值或领取免费测试额度
频率限制提示发送过于频繁加限流与重试间隔,避免告警风暴
模板错误提示变量数量不符核对templateid与content变量个数

用返回码写自动重试逻辑

并非所有错误都该重试。网络超时、服务端瞬时错误适合间隔2秒重试一到两次;认证错误、手机号格式错误属于参数问题,重试无意义,应直接记录日志并告警开发;余额不足应触发充值提醒而不是反复重发。下面是一段简化的判断逻辑:

def handle_result(resp):
    code = resp.get("code")
    if code == 2:
        return "success"
    if code in (NETWORK_RETRYABLE,):
        time.sleep(2)
        return "retry"
    return "fail: " + resp.get("msg", "")

日志留痕建议

  • 把请求参数(脱敏后的手机号)与完整返回体都写进日志;
  • 记录smsid,便于和回调状态对账;
  • 连续失败计数,超过阈值触发额外告警;
  • 按成功计费、失败不计费,排查阶段反复试发不会产生额外成本。

返回msg里的中文描述是排查的直接线索,建议把它完整落库,而不是只记code数字。

掌握返回码就能自助解决大部分联调问题。前往注册免费试用开始调试。

立即开始,免费体验

新用户注册即送免费测试额度,3分钟快速接入,专属客服全程指导

免费试用 →