队列式 ChatGPT 注册、支付链路、Token 同步和资源池管理项目。项目包含 FastAPI 后端、React 管理面板、声明式 Pipeline、Job 队列、多类资源池,以及 ChatGPT AT / OpenAI RT / sub2api 同步等能力。
QQ 交流群:1094941151
本项目仍处于开发和实验阶段,功能并不完善,稳定性、兼容性、错误处理和成功率都可能存在不足。请仅在你拥有明确授权的本地、测试、CTF、研究或防御环境中使用。
不得将本项目用于未授权注册、批量滥用、攻击、绕过平台规则、骚扰、欺诈或其他违法违规用途。使用者需要自行承担配置、运行和使用行为带来的全部责任。
- 后端 (
backend/):FastAPI + SQLModel/SQLite,负责 API、数据库、队列、Stage 调度、资源池和第三方集成。 - 前端 (
frontend/):React 19 + Vite + Ant Design,提供账号、Job、Pipeline、资源池、设置和调试页面。 - 静态资源 (
static/):前端构建产物,后端会作为 SPA 静态资源托管。 - 集成 (
backend/integrations/):ChatGPT 注册/支付/OpenAI OAuth、Microsoft 邮箱、sub2api、PayPal 等协议和浏览器链路。
- Pipeline / Job 队列调度、并发控制、日志事件流和失败重试
- 邮箱、代理、短信、支付卡、PayPal 号码等资源池管理
- ChatGPT 注册流程编排,支持协议链路和浏览器调试链路
- Payment Link、PayPal guest checkout / 支付自动化相关链路
- ChatGPT Web Session access token 管理
- OpenAI OAuth refresh token 获取、保存和同步
- sub2api 账号绑定与同步
- Camoufox / Chromium 调试浏览器与 HAR 抓取
- 前端管理面板和 WorkPool / ResourcePool 配置
- AT:ChatGPT Web Session access token,来自
chatgpt.com/api/auth/session,存储在ChatGPTAccount.access_token。 - RT:OpenAI OAuth refresh token,来自 OAuth PKCE 流程,存储在
OpenAIRefreshToken.refresh_token。 - OAuth 返回的短期 access token 只作为
oauth_access_token元数据保存,不作为业务 AT,也不会传给 sub2api 的credentials.access_token。 ChatGPTAccount.session_token是 ChatGPT Web session token,不是 RT。
后端统一走声明式 Pipeline:POST /api/pipelines 默认使用 full_chain 完整链路,也可传 preset 或显式 stages;stop_after 可让账号停在任意 Stage 边界。
当前 WorkPool Stage:
register:注册账号,绑定账号身份(proxy_id/proxy_url/UA/fingerprint/cookies/local_storage)。payment_link:复用账号身份生成 Team/Plus hosted 长链,写入payment_links。payment:PayPal guest checkout / 支付自动化。chatgpt_session:刷新并规范化 ChatGPT Web Session,维护 ChatGPT AT/session 材料。openai_oauth:显式获取 OpenAI OAuth RT,写入openai_refresh_tokens。sub2api_sync:把 ChatGPT AT + 可选 OpenAI RT / Web session 材料同步到 sub2api,并回写状态。
默认完整链路为:
register → payment_link → payment → chatgpt_session → sub2api_sync
RT 获取是显式链路,可用 openai_oauth 插入到 sub2api_sync 前。
- 后端:Python、FastAPI、SQLModel、Uvicorn
- 前端:React、TypeScript、Vite、Ant Design
- 浏览器自动化:Playwright / Patchright / Camoufox
- HTTP 客户端:curl_cffi / requests / httpx
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtWindows PowerShell 可使用:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtpnpm --dir frontend installpython -m backend.main默认监听 0.0.0.0:8000,可通过环境变量覆盖:
HOST=127.0.0.1 PORT=8000 python -m backend.main开发时也可以使用 Uvicorn reload:
python -m uvicorn backend.main:app --reload --port 8000pnpm --dir frontend devpnpm --dir frontend build构建产物会落到 static/,后端会把它当 SPA 静态资源挂到根目录。
项目中的邮箱、代理、短信、支付、PayPal 号码、sub2api 等能力需要在前端管理面板或对应 API 中配置资源池后才能正常运行。不同链路依赖的外部服务、代理质量、验证码接收、浏览器运行环境都会影响成功率。
POST /api/pipelines创建声明式 Pipeline;GET /api/pipelines/GET /api/pipelines/{id}查询。GET /api/jobs/GET /api/jobs/{id}/events/stream查看 Job 与 SSE 日志。GET /api/pools/GET /api/stages/GET /api/queue/stats查看 Stage / ResourcePool 状态。GET /api/accounts/GET /api/accounts/subscriptions/POST /api/accounts/{id}/refresh-token|sub2api-sync|read-email|debug-browser|payment-link/retry。GET /api/payment-links/POST /api/payment-links/{id}/payment|debug-browser。GET /api/access-tokens/POST /api/access-tokens/{id}/refresh-token/GET /api/access-tokens/export。GET /api/refresh-tokens/POST /api/refresh-tokens/{id}/sync/PATCH /api/refresh-tokens/{id}/toggle/DELETE /api/refresh-tokens/{id}。POST /api/email/import/POST /api/email/read。GET/POST/PATCH/DELETE /api/proxies、/api/cards、/api/sms/projects管理资源池数据。GET/PUT /api/settings按 WorkPool / ResourcePool 维护配置列表,任务创建不携带模块配置。POST /api/browser-debug/open调起 Camoufox/Chromium,注入 cookies/UA/localStorage 并抓 HAR。GET /api/healthz健康检查。
启动时自动 init_db(),主要表包括:
pipelines/jobs/job_eventschatgpt_accounts/access_token_accounts/openai_refresh_tokens/sub2api_account_bindingspayment_links/payment_cards/paypal_numbersemail_accounts/email_messagesproxies/browser_debug_sessionssms_projects/settings
SQLite 上自动开 WAL + busy_timeout。旧 RT 表会在启动时迁移到 openai_refresh_tokens。
Pipeline、账号、支付长链页面都可以手动调起 Camoufox/HAR;Pipeline 停在某个 Stage 后不会自动弹窗。
open_debug_session(...) 会把账号保存的 cookies、localStorage、UA、fingerprint 和代理注入浏览器,HAR 输出到 logs/har/debug-{ts}.har。
POST /api/email/import 设置 alias_split_enabled=true + alias_split_count 即可。每条原始记录会在 email_accounts 中扩展为 N 条带随机后缀的 +xxxxxx@domain 邮箱(OAuth 信息共享),包含/不包含原始邮箱可控。
python -m compileall backend
pnpm --dir frontend lint
pnpm --dir frontend build欢迎在 QQ 群 1094941151 交流问题和改进建议。反馈问题时建议附带运行环境、配置范围、相关日志和复现步骤。