先区分三种响应包络

客户端应先读取 HTTP 状态,再解析 JSON 中的平台业务码和消息。Token 入口使用平台基础响应包络,包含 path 且不含 status:
Token 错误结构示例
鉴权、接口权限或请求参数校验失败时,响应包含 path 且不含 status:
请求错误结构示例
业务处理失败时,响应包含 status 且不含 path:
业务接口错误结构示例
三种错误在没有附加错误数据时都会省略 data。业务错误里的 status 默认是 0,它不是 HTTP 状态,也不是通用错误码。具体含义请以当前接口说明为准。
注意 大多数鉴权、路径、方法、停用、限流和参数错误会以 HTTP 200 返回。必须检查 success 与 code。

大模型兼容错误

/v1/chat/completions 与 /v1/responses 返回 OpenAI 风格的 error 对象,不使用普通业务响应信封。请根据 HTTP 状态、error.type 和 error.message 判断;401 检查服务端 APP_SECRET,400 修正请求或余额,502 才考虑有上限的退避重试。 流式请求开始后应按 SSE 事件处理,不要把整个响应当作单个 JSON。详见接入大模型对话。

Webhook 投递失败

Webhook 的成功确认必须同时满足 HTTP 2xx、JSON success=true 与 code=200。空响应、204、非 JSON 或超时都会重试。接收端应在 6 秒内完成验签和幂等落库,再异步处理业务。

常见失败类型

缺少或无效的应用凭据

检查 app_id 是否正确、应用是否启用,以及签名使用的 APP_SECRET 是否与当前应用匹配。

签名不一致

检查毫秒时间戳、固定 sign_ver=1.0、键名排序、RFC1738 编码和小写 MD5。尤其注意空格、加号、中文与 ~。

缺少 X-Legacy-Token

Token 请求本身不需要该请求头;调用普通鉴权业务接口时必须携带。

参数校验失败

动态业务接口通常返回 code=2150,并把首个校验原因放在 message。根据接口页检查必填项、类型、枚举、长度和格式。

接口停用或不存在

检查接口地址和 HTTP 方法。接口也可能已停用,或当前应用无权访问。

安全重试

仅对明确可重试的网络超时、限流或服务端错误使用带抖动的指数退避。创建资源类请求在未确认幂等语义前不要自动重放,以免重复扣费或重复创建资源。

继续排查