Files
2026-07-30 23:48:01 +08:00

107 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Business Toolkit
一个独立的 ChatGPT Business 价格与脚本工具箱。价格雷达从 `chatgpt.com` 的公开结账价格配置中读取 `currency_config.business.month`,保留官方原币价格并按公开汇率换算;脚本生成器在浏览器本地生成 Team 优惠、Codex 按量和账单查询脚本。
> 本项目不是 OpenAI 官方产品,与 OpenAI 没有隶属、合作或背书关系。实际价格、税费、付款资格和地区可用性以结账页为准。
## 功能
- 探测完整的 ISO 3166-1 alpha-2 国家和地区代码。
- 仅展示标准 ChatGPT Business 月付价格,不包含年付或非营利套餐。
- 显示官方原币价格、人民币/美元估算、含税或未含税口径。
- 支持搜索、筛选、排序以及桌面表格和移动端卡片。
- 从任意地区一键带入国家和货币,生成 ChatGPT Team 结账脚本。
- Team 优惠生成器支持 39 种货币、已有空间 UUID、实时预览、复制和 `.js` 下载。
- Codex 按量生成器支持空间名称、Credit 数量和国家到货币自动匹配。
- 账单查询生成器可查询最近 10 条发票、支付方式和账单资料。
- 优惠码和手动提供的 Token 仅在当前浏览器内处理,不写入网址或本地存储。
- GitHub Actions 每两天刷新,结构异常或覆盖率骤降时停止部署。
- 单个地区暂时失败时,最多沿用 14 天的上次成功结果并标记为“数据暂旧”。
## 本地开发
需要 Node.js 22 或更高版本,推荐 Node.js 24 LTS。
```bash
npm install
npm run dev
```
本地首次打开会使用 `public/data/sample-prices.json` 演示数据。获取真实数据:
```bash
npm run collect
npm run dev
```
生成的 `public/data/prices.json` 已加入 `.gitignore`,不会提交到仓库。
常用检查:
```bash
npm test
npm run typecheck
npm run build
```
## 数据采集规则
采集器位于 `scripts/collect-prices.mjs`
1. 遍历 249 个 ISO 国家/地区代码。
2. 请求 `https://chatgpt.com/backend-anon/checkout_pricing_config/configs/{CODE}`
3. 校验返回地区、币种和 `business.month.amount/tax`
4. 以 Frankfurter 为主要汇率源;未覆盖币种由 `open.er-api.com` 补齐。
5. 通过美元中间价换算:`USD = 本币金额 ÷ USD→本币汇率``CNY = USD × USD→CNY汇率`
6. 不自行加税,只展示接口提供的税务口径。
采集请求不使用 Cookie、设备 ID、会话 ID、登录凭据或浏览器指纹头。
## 脚本生成器
顶部导航可切换到脚本生成器,也可以从价格表或移动端价格卡片直接进入 Team 优惠工具。生成器内部通过 `tool=checkout|codex|billing` 切换工具;地区入口会预填国家和货币,优惠码、Token 和空间信息不会出现在网址中。
Team 优惠生成器默认使用 `US / EGP`、月付、两个席位和工作区名称 `xxx`;空间 UUID 留空时创建新空间。Codex 按量生成器默认使用空间名称 `work``13` Credit 和美国地区。
三个工具都支持在脚本运行时从登录 Session 自动获取 Access Token,也可以手动粘贴原始 `accessToken``/api/auth/session` 返回的完整 JSON;完整 JSON 只会提取其中的 `accessToken` 写入脚本。切回自动获取时,手动输入会立即清空。
生成器只生成文本,不会在本站请求登录凭证、支付或账单接口,也不会代替用户执行代码。账单结果可能包含敏感付款资料,请勿分享控制台输出。请仅在有权操作的账号中使用,并以实际 ChatGPT 页面结果为准。
### 发布保护
- 首次快照必须包含新鲜的 US、至少一个非 USD 地区、CNY 汇率和至少 20 个有效地区。
- 后续快照总行数不得低于上一线上快照的 90%。
- 任何保护条件失败时,Action 直接失败,不会覆盖当前线上版本。
可通过环境变量调整:
- `PREVIOUS_SNAPSHOT_URL`:上一线上快照地址。
- `PREVIOUS_SNAPSHOT_PATH`:本地上一快照路径。
- `MIN_FIRST_RUN_ROWS`:首次部署最少行数,默认 `20`
- `OUTPUT_PATH`:输出文件,默认 `public/data/prices.json`
## GitHub Pages 发布
1. 新建 GitHub 仓库并推送本目录内容,默认分支命名为 `main`
2. 打开仓库 **Settings → Pages**
3.**Build and deployment → Source** 中选择 **GitHub Actions**
4. 打开 **Actions → Refresh prices and deploy Pages → Run workflow**,执行首次手动刷新。
5. 首次成功后,网站会发布到仓库对应的 GitHub Pages 地址。
工作流还会在北京时间每天 03:17 唤醒,通过日期门控每两天真正刷新一次;主分支推送和手动运行会立即刷新。
GitHub 可能在公开仓库连续 60 天没有活动后停用定时工作流。本项目按约定不创建保活提交;如被停用,请在 Actions 页面手动重新启用并运行一次。
## 计费与免责声明
ChatGPT Business 按标准席位计费,通常至少需要两个标准席位。本站表格显示的是接口返回的**每用户月价**,不代表两席位总账单。企业税号、VAT/GST、反向征税、发卡行汇率和手续费都可能改变最终金额。
- [OpenAI Business 官方价格页](https://openai.com/business/pricing/)
- [OpenAI Business 账单与席位说明](https://help.openai.com/en/articles/8792536)
## 授权与归属
代码采用 [MIT License](LICENSE)。
ChatGPT 与 OpenAI 是其各自权利人的商标。本项目仅作描述性使用。项目受到 PriceAI 信息架构的启发,但没有复制 PriceAI 的代码、品牌、素材、价格快照或线上数据;详见 [NOTICE.md](NOTICE.md)。