返回信息如何更规范。
短信验证码平台为假设示范
👉 场景 → HTTP 状态码 → 业务 code → 说明
给你一份可直接用来设计接口的清单(偏生产级)
✅ 一、基础设计原则(先定规则)
✔ HTTP 状态码(建议)
- 200:请求成功(即使业务失败也可以返回 200 + code)
- 400:参数错误
- 401:未认证(缺 token)
- 403:无权限 / token 错误
- 429:限流(非常重要)
- 500:服务器错误
✔ 业务 code(建议分段)
| 区间 | 含义 |
| --------- | ----- |
| 0 | 成功 |
| 10001099 | 通用错误 |
| 11001199 | 参数错误 |
| 12001299 | 认证/权限 |
| 13001399 | 短信发送 |
| 14001499 | 验证码校验 |
| 15001599 | 限流/风控 |
✅ 二、核心接口场景
📱 1. 发送验证码接口
✔ 成功
| HTTP | code | msg |
| ---- | ---- | ------- |
| 200 | 0 | success |
❌ 参数类
| HTTP | code | msg |
| ---- | ---- | ------- |
| 400 | 1101 | 手机号格式错误 |
| 400 | 1102 | 国家码错误 |
| 400 | 1103 | 缺少手机号 |
| 400 | 1104 | 模板ID无效 |
❌ 发送失败
| HTTP | code | msg |
| ---- | ---- | ------ |
| 200 | 1301 | 短信发送失败 |
| 200 | 1302 | 短信通道异常 |
| 200 | 1303 | 模板未审核 |
| 200 | 1304 | 内容违规 |
❌ 频控 / 风控(重点)
| HTTP | code | msg |
| ---- | ---- | --------- |
| 429 | 1501 | 请求过于频繁 |
| 429 | 1502 | 同一手机号发送过多 |
| 429 | 1503 | 同一IP发送过多 |
| 403 | 1504 | 风控拦截 |
❌ 账户问题
| HTTP | code | msg |
| ---- | ---- | ---------- |
| 403 | 1201 | API key 无效 |
| 403 | 1202 | 账户被禁用 |
| 200 | 1305 | 余额不足 |
🔐 2. 校验验证码接口
✔ 成功
| HTTP | code | msg |
| ---- | ---- | ---- |
| 200 | 0 | 验证成功 |
❌ 验证失败
| HTTP | code | msg |
| ---- | ---- | ------ |
| 200 | 1401 | 验证码错误 |
| 200 | 1402 | 验证码已过期 |
| 200 | 1403 | 验证码不存在 |
| 200 | 1404 | 验证码已使用 |
❌ 风控类
| HTTP | code | msg |
| ---- | ---- | ------ |
| 429 | 1505 | 验证次数过多 |
| 403 | 1506 | 风控限制 |
🧾 3. 通用认证错误(你现在做的)
| HTTP | code | msg |
| ---- | ---- | -------- |
| 401 | 1200 | 缺少认证信息 |
| 403 | 1201 | token 无效 |
| 403 | 1203 | token 过期 |
| 403 | 1204 | 权限不足 |
⚙️ 4. 系统级错误
| HTTP | code | msg |
| ---- | ---- | --------- |
| 500 | 1000 | 系统错误 |
| 500 | 1001 | Redis异常 |
| 500 | 1002 | DB异常 |
| 500 | 1003 | 第三方短信服务异常 |
🚫 5. 限流 / 防刷(非常关键)
| HTTP | code | msg |
| ---- | ---- | ----- |
| 429 | 1500 | 全局限流 |
| 429 | 1501 | 接口限流 |
| 429 | 1502 | 手机号限流 |
| 429 | 1503 | IP限流 |
| 429 | 1507 | 设备限流 |
🌍 6. 国际短信(可选)
| HTTP | code | msg |
| ---- | ---- | ------ |
| 400 | 1105 | 不支持该国家 |
| 200 | 1306 | 国际通道失败 |
✅ 三、推荐返回格式(最终统一)
{
"code": 0,
"msg": "success",
"data": {
"request_id": "xxxx",
"expire_in": 300
}
}
❌ 错误示例
{
"code": 1502,
"msg": "Too many requests",
"data": null
}
HTTP:429
✅ 四、你这个项目建议“加几个关键字段”
短信系统建议返回:
{
"code": 0,
"msg": "success",
"data": {
"request_id": "abc123",
"expire_in": 300,
"retry_after": 60
}
}
✅ 五、真实行业补充(很重要)
👉 大厂常见额外机制:
✔ 1. 图形验证码(防刷前置)
✔ 2. 滑块验证失败
✔ 3. 黑名单手机号
✅ 六、一句话总结
👉 短信平台的核心就是三块:
- 发送(1300段)
- 验证(1400段)
- 限流/风控(1500段) ← 最重要