切换外观
CC Switch
当前状态:待复验。本页按 CC Switch 自定义用量查询格式编写;生产使用前,应通过 CC Switch 的“测试脚本”确认当前版本、接口部署状态和卡片展示结果。
前置条件
- 在 Token Factory 控制台创建可撤销的 API Key,不要把真实 Key 写入脚本、截图或仓库。
- 在 CC Switch 中先创建对应供应商,并准确选择通用余额或 Coding Plan 的 Base URL。
- CC Switch 的默认“通用模板”把单位固定为 USD,且
response.is_active || true会把无效状态误判为有效,因此本页统一使用“自定义”模板。 - 用量查询只读,不扣余额、不预留套餐次数,也不会产生模型调用。
入口与计费方式
CC Switch 会在供应商 Base URL 后追加 /user/balance。四种配置对应如下:
| 权益 | 协议 | 供应商 Base URL | 实际查询地址 | 展示内容 |
|---|---|---|---|---|
| 通用余额 | OpenAI 兼容 | https://tokenfactory.cn/api/v1 | /api/v1/user/balance | 剩余人民币金额 |
| 通用余额 | Anthropic Messages | https://tokenfactory.cn/api | /api/user/balance | 剩余人民币金额 |
| Coding Plan | OpenAI 兼容 | https://tokenfactory.cn/api/v1/coding | /api/v1/coding/user/balance | 5 小时与周限剩余百分比 |
| Coding Plan | Anthropic Messages | https://tokenfactory.cn/api/anthropic | /api/anthropic/user/balance | 5 小时与周限剩余百分比 |
四个用量查询地址都使用:
http
Authorization: Bearer <API Key>即使供应商使用 Anthropic Messages 协议,用量查询也不使用 x-api-key。通用余额和 Coding Plan 权益相互隔离,不会自动切换或改扣另一种权益。
准确配置
- 在 CC Switch 打开对应供应商卡片。
- 点击“用量查询”,开启用量查询开关。
- 选择“自定义”模板。
- 如果供应商卡片已经配置正确的 Base URL 和 API Key,用量查询面板中的同名可选字段保持空白。
- 粘贴下面的完整脚本,先点击“测试脚本”,确认结果后再保存。
js
({
request: {
url: "{{baseUrl}}/user/balance",
method: "GET",
headers: {
"Authorization": "Bearer {{apiKey}}",
"User-Agent": "cc-switch/1.0"
}
},
extractor: function(response) {
if (!response || typeof response.balance === "undefined") {
return {
isValid: false,
invalidMessage:
response &&
response.error &&
response.error.message
? response.error.message
: "查询失败"
};
}
// 套餐响应即使无可用套餐,也始终包含 active 或 calls 单位。
var isPackage =
typeof response.active !== "undefined" ||
response.unit === "calls";
if (isPackage) {
if (
response.active !== true ||
!response.fiveHour ||
!response.weekly
) {
return {
isValid: false,
invalidMessage: response.message || "没有可用套餐"
};
}
var fiveHourUsed = Number(response.fiveHour.usedPercent);
var weeklyUsed = Number(response.weekly.usedPercent);
var fiveHourRemaining = Number.isFinite(fiveHourUsed)
? Math.max(0, Math.min(100, 100 - fiveHourUsed))
: 0;
var weeklyRemaining = Number.isFinite(weeklyUsed)
? Math.max(0, Math.min(100, 100 - weeklyUsed))
: 0;
return {
isValid: true,
// CC Switch 卡片按单行显示 extra,使用短文案避免省略号截断。
extra:
"5h剩" +
fiveHourRemaining +
"%|周剩" +
weeklyRemaining +
"%"
};
}
var balance = Number(response.balance);
if (!Number.isFinite(balance)) {
return {
isValid: false,
invalidMessage: "余额格式错误"
};
}
return {
isValid: response.is_active === true,
invalidMessage:
response.is_active === true
? undefined
: "账户不可用",
remaining: balance,
unit: "人民币"
};
}
})不要在套餐分支返回 remaining、used、total 或 unit。否则 CC Switch 会自动在 extra 前增加“已使用、剩余”等内容,挤压双窗口文案。
验证
在 CC Switch 的“测试脚本”中依次确认:
| 配置 | 预期请求 | 预期卡片内容 |
|---|---|---|
| 通用余额 OpenAI | GET /api/v1/user/balance | 剩余:10000.00 人民币 |
| 通用余额 Anthropic | GET /api/user/balance | 剩余:10000.00 人民币 |
| Coding Plan OpenAI | GET /api/v1/coding/user/balance | 5h剩100%|周剩100% |
| Coding Plan Anthropic | GET /api/anthropic/user/balance | 5h剩100%|周剩100% |
实际数值以账户余额和当前套餐窗口为准。套餐剩余百分比按 100 - usedPercent 计算;两个窗口都会展示,不用一个窗口替代另一个窗口。
故障排查
- 404 资源不存在:当前生产版本可能尚未发布用量查询接口,或供应商 Base URL 配置错误。先核对上表的四个 Base URL。
- 401 无效的 API Key:确认脚本使用
Authorization: Bearer,不要改成x-api-key。 - 显示 USD:仍在使用 CC Switch 默认通用模板;切换到“自定义”并保存本页脚本。
- 套餐显示成人民币:旧脚本只通过
fiveHour是否非空判断套餐,无套餐时会误判。应完整替换为本页脚本。 - 套餐文字出现省略号:CC Switch 卡片是单行展示,不要恢复“5小时剩余”等长文案,保持
5h剩…|周剩…。 - 没有自动刷新:确认供应商处于当前启用状态,并检查用量查询开关和自动刷新间隔。
完整响应字段和接口语义见用量与余额查询。
安全提示
- 脚本中只保留
占位符,不粘贴真实 Key。 - 测试结果、错误截图和导出配置不得包含明文凭证。
- API Key 泄露后应立即在控制台禁用并重新创建,不要仅删除本地配置。
- 查询失败不代表模型调用失败;不要因为用量卡片异常自动切换余额与套餐入口。
更新信息
本页保持待复验。完成真实版本验证后,应补充 CC Switch 版本、验证日期、四个入口的测试结果和已知显示限制。