[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75420":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":28,"discoverSource":29},75420,"gpt-promo-scanner","JUk1-GH\u002Fgpt-promo-scanner","JUk1-GH","ChatGPT Team(Business) 促销码自动扫描工具 — 批量发现\u002F验证\u002F价格收集，支持 17 国 34 个码，最高折扣 71% | ChatGPT Business promo code scanner — batch discovery, validation, price collection, 34 codes across 17 countries, up to 71% off",null,"Python",614,122,2,5,0,7,27,511,26,10.27,"MIT License",false,"main",[],"2026-06-12 02:03:34","# ChatGPT Team (Business) 促销码自动扫描工具\r\n\r\n**简体中文** | [English](README_EN.md)\r\n\r\n[![LINUX DO](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLINUX-DO-FFB003?style=flat-square)](https:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F2156521)\r\n\r\n> 原创研究首发于 [Linux Do 社区](https:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F2156521)（一级用户才可查看）\r\n\r\nChatGPT Team（现 ChatGPT Business）标准价 $50\u002F月（2 人）。OpenAI 给部分渠道合作伙伴发放了促销码，可以 40%~71% 折扣。\r\n\r\n本项目提供一套完整的批量发现、验证、比价、支付工具链。跟着下面的流程一步步操作即可。\r\n\r\n---\r\n\r\n## 目录\r\n\r\n- [前置准备](#前置准备)\r\n- [第一步：生成候选码](#第一步生成候选码)\r\n- [第二步：批量验证](#第二步批量验证)\r\n- [第三步：收集价格](#第三步收集价格)\r\n- [第四步：一键支付](#第四步一键支付)\r\n- [结果解读](#结果解读)\r\n- [实战技巧](#实战技巧)\r\n- [踩坑记录](#踩坑记录)\r\n- [文件说明](#文件说明)\r\n\r\n---\r\n\r\n## 前置准备\r\n\r\n### 需要的环境\r\n\r\n- **Clash Verge**（或兼容 Clash API 的代理客户端）— 用于切换不同国家的代理节点\r\n- **Python 3.9+**\r\n- **ChatGPT 账号**（免费版即可，不需要订阅）\r\n\r\n### 1. 安装项目\r\n\r\n```bash\r\ngit clone https:\u002F\u002Fgithub.com\u002FJUk1-GH\u002Fgpt-promo-scanner.git\r\ncd gpt-promo-scanner\r\npip install -r requirements.txt\r\n```\r\n\r\n### 2. 配置 Clash\r\n\r\n确保 Clash Verge 正在运行，脚本默认连接 `\u002Ftmp\u002Fverge\u002Fverge-mihomo.sock`（Unix socket）。\r\n\r\n如果路径不同，修改 `config.toml` 中的 socket 配置。\r\n\r\n### 3. 获取 accessToken\r\n\r\nChatGPT 的 API 需要登录凭证，通过浏览器获取：\r\n\r\n**方法一（推荐）**：浏览器打开以下地址，在页面显示的 JSON 中找到 `accessToken` 字段：\r\n```\r\nhttps:\u002F\u002Fchatgpt.com\u002Fapi\u002Fauth\u002Fsession\r\n```\r\n\r\n**方法二**：在 chatgpt.com 按 F12 → Console，执行：\r\n```javascript\r\nconst s = await (await fetch('\u002Fapi\u002Fauth\u002Fsession')).json();\r\nconsole.log(s.accessToken);\r\n```\r\n\r\n会输出一串以 `eyJ` 开头的字符串，复制它。\r\n\r\n### 4. 配置 Token\r\n\r\n```bash\r\ncp config.toml.example config.toml\r\n```\r\n\r\n编辑 `config.toml`，把刚才获取的 token 填入：\r\n\r\n```toml\r\n[openai]\r\ntoken = \"eyJhbGciOi...\"\r\n```\r\n\r\n> ⚠️ Token 有有效期（几小时到几天），过期后所有验证都会返回 `invalid_code`。每次跑脚本前如果发现全部是 `not found`，先去重新获取 token。\r\n\r\n---\r\n\r\n## 第一步：生成候选码\r\n\r\n根据目前已发现的码，大部分遵循这个命名规律：\r\n\r\n```\r\n公司名(全小写去空格) + ISO 国家码(小写)\r\n```\r\n\r\n例如：`thinkingmachines` + `th` = `thinkingmachinesth`\r\n\r\n但**不是绝对的**，存在明显例外：\r\n- 有的码**没有国家后缀**（如 `firstfocus`，没有 AU）\r\n- UK 码后缀不统一，有的用 `uk`（`talentgeniusuk`），有的用 `gb`（`aibuildgroupgb`）\r\n- 可能还有其他未发现的命名变体\r\n\r\n### 从哪找公司名单\r\n\r\n有促销码的公司通常符合以下特征：\r\n\r\n- **中小型 MSP（托管服务提供商）**，为中小企业提供 IT 支持\r\n- **AI 工具公司**，特别是做 Chrome 插件、SaaS 产品的\r\n- **区域性公司**，在一个或几个国家有业务\r\n\r\n**确定不包含**：大型咨询公司（Accenture、Deloitte、McKinsey）、大型 MSP（SearchKings）、大型 IT 企业（Samsung SDS）。\r\n\r\n### 方法一：用已知 base name 全矩阵扫描\r\n\r\n项目内置了目前已发现的 9 个 base name，可以直接对它们做全矩阵交叉扫描（base name × 34 个国家）：\r\n\r\n```bash\r\npython discover_codes.py --cross\r\n```\r\n\r\n脚本会自动组合所有已知公司名 × 所有国家，逐个调 API 验证。这是最快发现新码的方式。\r\n\r\n### 方法二：自己准备公司名单\r\n\r\n把你认为可能有码的公司名列出来，按规则生成候选码，丢给脚本扫描。\r\n\r\n也可以用 AI 帮你生成公司名单，提示词参考：\r\n\r\n> 我正在寻找 ChatGPT Business 的促销码，命名规则是 `公司名全小写去空格 + 国家代码`。请帮我列出一些可能获得 OpenAI 促销码的 MSP 或 AI 工具公司，特别是：\r\n> 1. 做 Chrome 插件的 AI 公司\r\n> 2. 中小型 IT 服务商\r\n> 3. 区域性 MSP\r\n\r\n### discover_codes.py 用法详解\r\n\r\n```bash\r\n# 扫描指定地区（如英国 GB），使用内置的 base name 列表\r\npython discover_codes.py GB\r\n\r\n# 在扫描时额外添加自定义码（可以跟 --cross 一起用）\r\npython discover_codes.py GB --add \"mycompanygb\"\r\n\r\n# 全矩阵扫描：所有已知 base name × 所有国家\r\npython discover_codes.py --cross\r\n\r\n# 跟 --cross 时，额外添加自定义 base name 一起扫\r\npython discover_codes.py --cross --add-base \"mycompany\"\r\n\r\n# 预览候选码（不跑验证，只展示会扫哪些）\r\npython discover_codes.py GB --preview\r\n\r\n# 扫描完成后自动调用 auto_scan.py 收集价格\r\npython discover_codes.py GB --auto-scan\r\n\r\n# 列出脚本支持的国家列表\r\npython discover_codes.py --list\r\n```\r\n\r\n结果会按 `ELIGIBLE`（可用）、`EXISTS`（存在但地区不匹配）、`not found`（不存在）三类保存到文件。\r\n\r\n---\r\n\r\n## 第二步：批量验证\r\n\r\n候选码生成完毕后，用 `auto_scan.py` 进行全自动扫描验证。\r\n\r\n这个脚本会自动：\r\n1. 检测 Clash 模式和代理组\r\n2. 按地区匹配节点关键字\r\n3. 切换节点 → 测延迟 → 调 checkout API → 收集结果\r\n\r\n### 扫描指定地区\r\n\r\n```bash\r\n# 只扫描英国 GB\r\npython auto_scan.py GB\r\n\r\n# 跳过价格收集（只验证是否存在，更快）\r\npython auto_scan.py GB --no-price\r\n```\r\n\r\n适用于：你有明确的目标地区，或者只想确认刚发现的码是否能用。\r\n\r\n### 全自动扫描所有地区\r\n\r\n```bash\r\npython auto_scan.py\r\n```\r\n\r\n脚本会遍历所有支持的地区，自动切换 Clash 节点，逐个验证并收集结果。这是最常用的模式。\r\n\r\n### 扫描结果\r\n\r\n```\r\n扫描完成！结果已保存到：\r\n- stripe_urls.txt — 所有可用的 Stripe 支付链接\r\n- scan_results.json — 结构化 JSON 结果\r\n\r\n共发现 X 个可用码（ELIGIBLE）\r\n共发现 Y 个存在码（EXISTS）\r\n```\r\n\r\n### 其他选项\r\n\r\n```bash\r\n# 查看支持的地区列表\r\npython auto_scan.py --list\r\n\r\n# 扫描后自动用浏览器打开 Stripe 支付页面\r\npython auto_scan.py GB --open\r\n```\r\n\r\n---\r\n\r\n## 第三步：收集价格\r\n\r\n`auto_scan.py` 默认会在验证后自动调用 metadata API 获取折扣信息，并实时换算美元价格。\r\n\r\n```\r\ncode: thinkingmachinesth\r\n  ✅ ELIGIBLE\r\n  折扣: ฿999\u002F月 off (≈ $17\u002F人)\r\n  2 人实付: ฿561\u002F月 (≈ $17)\r\n```\r\n\r\n### 关于价格的重要说明\r\n\r\n**官网标价是含税价，Stripe 用不含税价计算折扣。**\r\n\r\n例如德国的标价是 €26\u002Fseat（含 19% VAT），但 Stripe 内部用 €26 ÷ 1.19 = €21.85\u002Fseat 作为 base price。直接用官网标价算实付会差很多。\r\n\r\n**正确做法**：看 Stripe 支付页面的 pre-tax 金额。也可以在支付时修改账单地址到免税地区，免去税费。\r\n\r\n> 注：脚本收集的价格是 API 返回的折扣值，并非最终实付。最准确的方式是直接打开 Stripe 页面查看。\r\n\r\n---\r\n\r\n## 第四步：一键支付\r\n\r\n找到有效的促销码后，用 `open_stripe.py` 生成支付链接。\r\n\r\n这个脚本完全独立，复制出去单独放也能用，只需要 curl_cffi 依赖。\r\n\r\n### 用法\r\n\r\n```bash\r\npython3 open_stripe.py \u003C促销码> \u003C国家码> \u003CaccessToken>\r\n```\r\n\r\n需要三个参数：\r\n1. **促销码** — 要使用的码\r\n2. **国家码** — 对应节点的 ISO 国家码（大写）\r\n3. **accessToken** — 从 chatgpt.com 获取的登录凭证（`eyJ...`）\r\n\r\n### 示例\r\n\r\n```bash\r\n# 泰国节点\r\npython3 open_stripe.py thinkingmachinesth TH eyJhbGciOi...\r\n\r\n# 德国节点\r\npython3 open_stripe.py codestonede DE eyJhbGciOi...\r\n\r\n# 美国节点\r\npython3 open_stripe.py wildmangous US eyJhbGciOi...\r\n```\r\n\r\n### 输出\r\n\r\n```\r\n🔗 thinkingmachinesth  [TH]\r\n\r\n✅ 链接已生成，复制到浏览器打开：\r\nhttps:\u002F\u002Fcheckout.stripe.com\u002Fc\u002Fpay\u002Fcs_xxx...\r\n```\r\n\r\n把链接复制到浏览器打开，确认折扣金额后即可付款。\r\n\r\n> ⚠️ 每次使用前需先切换到对应国家的 Clash 节点。例如用 TH 码就先切到泰国节点。\r\n\r\n---\r\n\r\n## 结果解读\r\n\r\nAPI 返回三种结果：\r\n\r\n| 结果 | 含义 | 怎么办 |\r\n|------|------|--------|\r\n| `ELIGIBLE` | 可用，当前账号可直接付 | 直接生成 Stripe 链接支付 |\r\n| `EXISTS` | 码存在，但当前节点地区不匹配 | 切到对应国家的节点再试 |\r\n| `not found` | 不存在（或 token 过期） | 先确认 token 有效，再尝试其他公司名 |\r\n\r\n### 为什么没有 ELIGIBLE？\r\n\r\n`ELIGIBLE` 取决于你的 ChatGPT 账号地区和当前 Clash 节点的匹配度：\r\n\r\n- 如果你的账号是 US 地区，切到 US 节点后 US 码可能就是 `ELIGIBLE`\r\n- 切换到其他地区节点后，对应的本地化码可能变成 `ELIGIBLE`\r\n- 同一账号对不同地区码的 `ELIGIBLE` 状态可能不同\r\n\r\n大部分情况下，只要能拿到 `EXISTS` 就说明码是真实的，只是需要切对节点才能支付。\r\n\r\n---\r\n\r\n## 实战技巧\r\n\r\n### 1. 找到更多公司名\r\n\r\n有促销码的通常是中小型公司，不是大企业。试试这些思路：\r\n\r\n- 搜索 \"ChatGPT Team promo code\" + AI 工具名\r\n- 关注各国家的中小型 MSP 名单\r\n- TG 上的一些优惠频道偶尔会流出新码\r\n- 让 AI 帮你生成可能有合作的公司名单\r\n\r\n### 2. 先验证一个再批量\r\n\r\n```bash\r\n# 先用 verify.py 单测一个码\r\n# 或者直接用 discover_codes.py 跑单个地区\r\npython discover_codes.py GB --preview\r\n```\r\n\r\n确保 Token 有效、Clash 正常工作后，再跑全量扫描。\r\n\r\n### 3. 交叉扫描发现更多\r\n\r\n发现一个新的 base name 后，用 `--cross` 做全矩阵扫描：\r\n\r\n```bash\r\npython discover_codes.py --cross --add-base \"newcompany\"\r\n```\r\n\r\n如果新公司跟已知公司有类似的多国业务模式，很可能在其他国家也有码。\r\n\r\n### 4. 分步扫描避免被封\r\n\r\n不要一次性扫太多请求。建议节奏：\r\n\r\n1. 先跑 `--cross` 快速筛选（只调 eligibility API）\r\n2. 把 `EXISTS` 的码整理出来\r\n3. 分批用 `auto_scan.py` 收集价格\r\n\r\n### 5. 及时更新 Token\r\n\r\nToken 过期后所有请求都返回 `invalid_code`，会把有效码误判为不存在。可以设置 cron 定期获取新 token。\r\n\r\n---\r\n\r\n## 踩坑记录\r\n\r\n### 1. CRN 报道的合作伙伴全部无效\r\n初始按 OpenAI 公开合作的 MSP 公司名枚举，SearchKings、Samsung SDS 等全部没有促销码。公共合作伙伴 ≠ 有促销码的合作伙伴。\r\n\r\n### 2. 跑大量请求前必须先测一个\r\n一次生成 1286 个候选码直接开跑，全部被 Cloudflare 拉黑。任何批量操作前必须先用单个请求测试 API 可用性。\r\n\r\n### 3. Clash 全局模式 vs 规则模式\r\n脚本早期硬编码 `🤖 AI` 代理组，但 Clash 在 global 模式下 ChatGPT 流量走 `GLOBAL` 组，导致节点切换不生效。现已支持动态检测。\r\n\r\n### 4. UK 国家后缀不统一\r\n`talentgeniusuk` 有效但 `talentgeniusgb` 不存在；`aibuildgroupgb` 有效但 `aibuildgroupuk` 不存在。对 UK 必须两种后缀都试。\r\n\r\n### 5. Cloudflare 限速\r\n连续 ~50 个请求后 Cloudflare 开始拦截。脚本内置了间隔控制和自动切换节点机制，但如果仍遇到，手动放慢节奏。\r\n\r\n### 6. 折扣是 per-seat 值\r\nMetadata API 返回的 `discount.value` 是每席位的折扣，2 席位时实际省 = value × 2。\r\n\r\n### 7. 促销码有有效期\r\n部分码（如 `geccogb`、`codestonegb`）曾经可用，现已过期。码一旦过期就是永久失效，不可恢复。\r\n\r\n### 8. pricing-data.js 含税 ≠ Stripe 不含税价\r\n官网标价是含税价（含 VAT\u002FGST），Stripe checkout 底层用不含税价计算折扣。不同国家 VAT 不同（DE 19%、FR 20%、GB 20%）。直接看 Stripe 页面的 pre-tax 金额最准，或者改账单地址到免税地区。\r\n\r\n### 9. Token 过期导致全部 false negative（最大坑）\r\nChatGPT accessToken 有有效期（通常几小时到几天），过期后 eligibility API 对**任何码都返回 `invalid_code`**。在过期 token 下跑的大批量扫描，所有结果都是假的\"不存在\"。\r\n\r\n**教训**：\r\n- 每次跑扫描前脚本会自动验证 token（用已知有效码调 eligibility API）\r\n- 如果验证失败会打印 `❌ Token 验证失败` 并退出\r\n- 此时需重新从 chatgpt.com F12 Console 获取新 token\r\n\r\n---\r\n\r\n## 文件说明\r\n\r\n| 文件 | 用途 |\r\n|------|------|\r\n| `auto_scan.py` | 全自动扫描 + 价格收集（第二步、第三步用） |\r\n| `discover_codes.py` | 批量发现新促销码（第一步用） |\r\n| `open_stripe.py` | 一键生成 Stripe 付款链接，完全独立可复制（第四步用） |\r\n| `verify.py` | 手动验证单个码是否存在（快速测试用） |\r\n| `config.py` | 配置读取模块 |\r\n| `config.toml.example` | 配置模板 |\r\n| `known_codes.json` | 已知有效码数据库（本地使用，不提交到 git） |\r\n\r\n---\r\n\r\n## Star 趋势\r\n\r\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=JUk1-GH\u002Fgpt-promo-scanner&type=Date)](https:\u002F\u002Fstar-history.com\u002F#JUk1-GH\u002Fgpt-promo-scanner&Date)\r\n\r\n---\r\n\r\n## 许可\r\n\r\n[MIT](LICENSE)\r\n","JUk1-GH\u002Fgpt-promo-scanner 是一个用于自动扫描和验证 ChatGPT Business 促销码的工具，支持批量发现、验证及价格收集。该项目采用 Python 编写，能够处理来自 17 个国家的 34 个促销码，最高可享受 71% 的折扣。其核心功能包括生成候选码、批量验证促销码的有效性以及收集不同国家的价格信息，并提供一键支付功能。适用于需要节省 ChatGPT Business 订阅费用的企业和个人用户，尤其是那些希望通过自动化手段高效寻找最佳优惠的场景。","2026-06-11 03:52:44","CREATED_QUERY"]