MJ 计费、重试与排障
接口说明
每次生成或后续动作按对应动作价格收费。Imagine 四宫格按一次动作计费,放大、变体、Modal 等后续提交独立计费。任务提交时预扣积分,明确拒绝或终态 FAILURE / CANCEL 幂等退款;重复查询不重复扣费或退款。
state 只做业务关联,不能作为幂等键,也不能通过 state 查询任务。提交结果不明时保留金额和任务占用,等待核对,不自动退款或重发。保存错误响应头 X-Midjourney-Task-Id(若有)及原始错误;它是核对用标识,不证明任务已被接受。
参数校验错误使用以下原生形态;业务错误保留其明确原因。HTTP 状态与业务 code 都需要检查。
本站参数错误示例
HTTP 400{
"code": 4,
"description": "请输入提示词后再生成。",
"result": null,
"properties": null
}| 现象 | 处理 |
|---|---|
| 401 / 403 | 核对本站 Key、Bearer 格式、有效期与动作模型权限;父任务及子操作都须在当前 Key 的授权范围内。 |
| 404 / 查不到任务 | 确认根地址不带 /v1,路径含 /mj,使用回执 result;必须与提交时使用同一 Key 和站点。不存在或属于其他 Key 的任务都会拒绝访问。 |
| 400 / 参数被拒绝 | 检查 description、必填字段和 JSON 类型;特别注意 noStorage 是布尔值,Modal 蒙版是字符串,Edits 蒙版是数组。非空 notifyHook 当前不可用。 |
| 无可用渠道 / 动作未定价 | 接口存在不等于动作已开通;确认模型目录、Key 分组及对应动作价格。不能通过添加 model 字段绕过。 |
| 提交 HTTP 200,但没有成功 | 检查 JSON code 和 result。提交接受与任务生成成功是不同阶段;生成成功以任务 status: SUCCESS 为准。 |
| 排队、持续 0% 或达到客户端等待期限 | 保存任务 ID,稍后继续查询;客户端超时不取消任务,不代表失败,也不自动退款。 |
| 提交超时 / 5xx / 非 JSON / 断网 | 结果可能不明,禁止盲目重发 POST。保存 X-Midjourney-Task-Id(若返回)、state、时间和响应,交管理员核对;HTTP 响应都未收到时不要假设未受理。 |
| 查询 429 / 5xx / 网络错误 | 仅对查询做有上限的指数退避;不要因此重新提交任务。401 / 403 等明确权限错误应先修复。 |
| MODAL 一直不结束 | 按所选按钮补充 prompt / maskBase64,调用 modal;仅轮询无法代替这一步。 |
| 图片下载失败 | 签名过期可重新查询任务刷新链接;HTTP 410 或 imageUnavailable=true 表示图片已失效,工作台会移除对应创作,原计费记录保留。其他下载故障可稍后重试,不要重新提交生成。 |