feat: add register-only and checkout commands, fix payment flow, switch to yyds mail

- add 'register' command: register account and print credentials only
- add 'checkout' command: register account and print Plus hosted checkout URL
- fix hCaptcha rqdata/isInvisible for Stripe setup intent verification
- fix verify_challenge flow: call chatgpt.com/checkout/verify after challenge
- fix currency uppercase for checkout API
- add get_checkout_url method to ChatGPTPayment
- switch default mail provider to yyds
- update README with new commands and usage
This commit is contained in:
Logic
2026-03-21 14:38:28 +08:00
parent 3ca69eb5d3
commit 15cba50314
8 changed files with 682 additions and 178 deletions

View File

@@ -1,17 +1,18 @@
# gptplus_auto
# gptplus_machine
ChatGPT Plus 自动注册、订阅工具,以及 Codex CLI OAuth 登录工具。
ChatGPT 账号自动注册工具,以及 Codex CLI OAuth 登录工具。
## 功能
- **register** — 自动注册新 ChatGPT 账号,并可选完成 Plus 订阅Stripe 支付)
- **codex-login** — 对已有 ChatGPT 账号执行 Codex CLI OAuth 登录,纯 HTTP 实现,无需浏览器
- **register** — 自动注册新 ChatGPT 账号,输出邮箱、密码、邮箱凭证
- **checkout** — 注册账号后生成 Plus 支付链接(首月免费),在浏览器完成支付即可开通
- **codex-login** — 对已有账号执行 Codex CLI OAuth 登录,纯 HTTP 实现,无需浏览器
## 安装
```bash
python -m venv .venv
source .venv/bin/activate
uv sync
# 或
pip install -r requirements.txt
```
@@ -23,73 +24,92 @@ pip install -r requirements.txt
# 代理(推荐美国 IP
SOCKS5_PROXY=socks5://user:pass@host:port
# 临时邮箱服务vmail 或 mailtm
MAIL_PROVIDER=vmail
# YesCaptcha注册功能需要
YESCAPTCHA_API_KEY=your_key_here
# 支付信息(订阅功能需要,可留空跳过支付
CARD_NUMBER=4111111111111111
CARD_EXP_MONTH=12
CARD_EXP_YEAR=2028
CARD_CVC=123
BILLING_NAME=John Smith
BILLING_EMAIL=john@example.com
BILLING_ADDRESS_LINE1=123 Main St
BILLING_ADDRESS_CITY=New York
BILLING_ADDRESS_STATE=NY
BILLING_ADDRESS_POSTAL_CODE=10001
# 支付地区checkout 命令使用
COUNTRY=US
CURRENCY=usd
```
## 使用
所有功能通过 `src/main.py` 统一入口调用:
### 注册账号(+ 可选 Plus 订阅)
### 仅注册账号
```bash
.venv/bin/python src/main.py register
uv run python src/main.py register
```
- 自动申请临时邮箱、注册账号、解 hCaptcha
-`.env` 中配置了信用卡信息,注册完成后自动订阅 ChatGPT Plus
- 输出邮箱、邮箱密码、ChatGPT 密码、access token
输出示例:
```
=== Account Created ===
email: abc123@vmail.dev
password: Xk9#mPqLwZ2!vBnR
mailbox_id: aBcDeFgHiJkLmNoPq
mailbox_password: (空则无需密码)
access_token: eyJhbGci...
```
### 注册账号 + 获取 Plus 支付链接
```bash
uv run python src/main.py checkout
```
输出示例:
```
=== Account Created ===
email: abc123@vmail.dev
password: Xk9#mPqLwZ2!vBnR
mailbox_id: aBcDeFgHiJkLmNoPq
=== Plus Checkout URL ===
https://pay.openai.com/c/pay/cs_live_a1...
```
在浏览器打开链接填入信用卡信息完成支付新账号享首月免费优惠Plus 即开通。
### Codex CLI OAuth 登录
```bash
.venv/bin/python src/main.py codex-login --email user@example.com --password yourpassword
uv run python src/main.py codex-login --email user@example.com --password yourpassword
```
可选参数:
| 参数 | 说明 |
|------|------|
| `--email` | 账号邮箱(不传则交互式输入)|
| `--password` | 账号密码(不传则交互式输入)|
| `--email` | 账号邮箱 |
| `--password` | 账号密码 |
| `--otp` | 邮箱 OTP如需要|
| `--workspace-id` | 指定 workspace ID |
| `--authorize-url` | 自定义 OAuth authorize URL |
| `--mailbox-id` | vmail.dev mailbox ID自动获取 OTP|
| `--mailbox-password` | vmail.dev mailbox 密码 |
成功后输出 `localhost:1455/auth/callback?code=...` 回调 URL可直接交给 Codex CLI 完成登录。
成功后输出 `localhost:1455/auth/callback?code=...` 回调 URL交给 Codex CLI 完成登录。
## 项目结构
```
src/
├── main.py # 统一入口register / codex-login
├── main.py # 入口register / checkout / codex-login
├── config.py # 配置pydantic-settings读取 .env
├── http_client.py # HTTP 客户端curl_cffi Chrome 模拟)
├── vmail_client.py # 临时邮箱mail.tm
├── captcha_solver.py # YesCaptcha hCaptcha 解
├── chatgpt_register_http_reverse.py # 完整注册流程
├── chatgpt_payment.py # 完整 Stripe 支付流程
└── codex_oauth_http_flow.py # Codex CLI OAuth 登录(纯 HTTP
├── vmail_client.py # 临时邮箱客户端
├── captcha_solver.py # YesCaptcha hCaptcha 解
├── chatgpt_register_http_reverse.py # 注册流程
├── chatgpt_payment.py # Stripe checkout 流程
└── codex_oauth_http_flow.py # Codex CLI OAuth 登录
```
## 注意事项
1. **仅供学习研究**:请遵守 OpenAI 服务条款
2. **代理建议**:建议使用美国 IP 代理,避免触发风控
3. **API 可能变化**OpenAI/Stripe 可能随时更改接口
4. **避免频繁调用**:同 IP 短时间内多次注册可能被封
- 建议使用美国 IP 代理,避免触发风控
- 同 IP 短时间内多次注册可能被封,建议间隔使用
- checkout 链接有时效约30分钟生成后尽快使用