request_nonce,响应新增 resumed,调用方在刷新页面、网络重试或重复提交后可以恢复同一 CDK 锁定。| 级别 | 结论 | 说明 |
|---|---|---|
| 接口路径 | 不变 | 仍为 POST /api/v1/sub/verifyCdk。 |
| 请求字段 | 新增,可选 | 新增 request_nonce;旧调用方不传仍可继续使用。 |
| 响应字段 | 新增,可选 | 新增 resumed,用于识别本次是否恢复了原锁定。 |
| 兼容性 | 向后兼容 | 原有 cdk、expected_provider、activation_token 等字段语义不变。 |
| 推荐接入方式 | 调整 | 新接入方建议为每次兑换流程生成并持久化 request_nonce。 |
POST /api/v1/sub/verifyCdkrequest_nonce 在锁定有效期内重试时,会恢复该兑换流程已有的锁定,不会创建第二个锁定。{
"cdk": "AUTO-SUB-ABCDEFGH",
"expected_provider": "claude",
"request_nonce": "0123456789abcdefghijklmnopqrstuvwxyzABCDEFG"
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
cdk | string | 是 | CDK 兑换码。 |
expected_provider | string | 否 | 期望兑换的服务商,支持 openai、claude。 |
request_nonce | string | 否,推荐传入 | 兑换流程的幂等请求标识。必须为无 = 填充的 Base64URL 字符串,解码后长度为 16~64 字节。 |
request_nonce 在锁定有效期内再次调用时,接口返回原 activation_token 和原 expires_at。expires_in 返回当前剩余秒数。request_nonce 时仍可校验 CDK,但重试请求不会自动恢复原锁定。resumed 字段。{
"code": 200,
"error": "",
"activation_token": "7f2b4c6d8e...",
"expires_in": 180,
"expires_at": "2026-07-29T13:30:00Z",
"resumed": false,
"provider": "claude",
"product_name": "Claude Pro",
"plan": "claudepro"
}{
"code": 200,
"error": "",
"activation_token": "7f2b4c6d8e...",
"expires_in": 96,
"expires_at": "2026-07-29T13:30:00Z",
"resumed": true,
"provider": "claude",
"product_name": "Claude Pro",
"plan": "claudepro"
}| 字段 | 类型 | 说明 |
|---|---|---|
resumed | boolean | true 表示恢复了同一 request_nonce 对应的现有锁定;首次锁定或未传 request_nonce 时通常省略或为 false。 |
activation_token | string | 恢复原锁定时与首次锁定返回的值相同,后续接口必须原样使用。 |
expires_in | integer | 当前剩余有效秒数;恢复时不会重置为完整锁定时长。 |
expires_at | string | 原锁定的过期时间,恢复时保持不变。 |
request_nonce 不是有效 Base64URL,或解码后长度不在 16~64 字节范围内时:{
"code": 0,
"error": "请求标识无效,请刷新网页重试"
}verifyCdk 时同时提交 cdk、expected_provider 和 request_nonce。activation_token 和 expires_at;收到 resumed=true 时继续使用返回的原令牌。request_nonce。request_nonce,原校验和锁定流程保持不变;但建议升级,以减少刷新页面、短暂网络异常和重复提交导致的“CDK 正在使用中”问题。