precheckAccount 成功响应新增可选字段 refreshed_token,调用方收到后必须用它替换原 token 再提交兑换。| 级别 | 结论 | 说明 |
|---|---|---|
| 接口路径 | 不变 | 仍为 POST /api/v1/sub/precheckAccount。 |
| 请求字段 | 不变 | 仍提交 token、cdk 和 activation_token。 |
| 响应字段 | 新增,可选 | 成功响应可能新增 refreshed_token。 |
| 服务端行为 | 增强 | ChatGPT Access Token 过期时,服务端会尝试使用完整 Session JSON 自动刷新并重新预检。 |
| 兼容性 | 向后兼容 | 未触发刷新时响应结构和原调用流程保持不变。 |
| 缓存策略 | 明确 | 预检响应返回 Cache-Control: no-store 和 Pragma: no-cache。 |
POST /api/v1/sub/precheckAccountzstd64:<base64> 后提交;Claude 场景仍提交原始 sessionKey 的压缩结果。token。sessionToken 刷新登录态。refreshed_token。refreshed_token 替换原 token,再调用 redeem。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
refreshed_token | string | 否 | 自动刷新后的登录态 token,格式为 zstd64:<base64>。仅 ChatGPT Access Token 过期、自动刷新成功且账号预检通过时返回。 |
{
"code": 200,
"error": "",
"provider": "openai",
"email": "user@example.com",
"name": "YY",
"account_id": "acct_xxx",
"plan_type": "free",
"subscription_plan": "",
"has_active_subscription": false,
"refreshed_token": "zstd64:KLUv/QBY...refreshed",
"eligible": true
}{
"token": "zstd64:KLUv/QBY...refreshed",
"cdk": "AUTO-SUB-ABCDEFGH",
"activation_token": "7f2b4c6d8e..."
}| 场景 | 是否返回 refreshed_token | 调用方处理 |
|---|---|---|
| ChatGPT Token 正常 | 否 | 继续使用原 token。 |
| ChatGPT Token 过期且自动刷新成功 | 是 | 立即替换原 token,后续 redeem 使用新值。 |
| ChatGPT Token 过期但缺少完整 Session JSON | 否 | 提示 用户重新获取并提交完整 Session JSON。 |
| ChatGPT 登录态刷新失败 | 否 | 展示 error,重新获取 Session JSON 后提交。 |
| Claude 账号预检 | 否 | 继续使用原 Claude token。 |
{
"code": 0,
"error": "Access Token 已过期,请重新提交完整 Session JSON",
"provider": "openai",
"eligible": false
}sessionToken。{
"code": 0,
"error": "登录态刷新失败,请重新获取 Session JSON 后提交",
"provider": "openai",
"eligible": false
}precheckAccount 响应包含 Cache-Control: no-store 和 Pragma: no-cache。refreshed_token 与请求中的 token 具有相同敏感级别,不应写入日志、分析事件或错误上报。refreshed_token。refreshed_token 覆盖当前 token,并将刷新后的值传给 redeem。error,引导用户重新获取完整 Session JSON。refreshed_token 为可选字段,旧调用方可以忽略;但忽略该字段后,自动刷新成功的场景仍会把旧 Token 传给 redeem,导致后续兑换失败,因此建议尽快接入替换逻辑。