[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82301":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},82301,"GPT-FULL-REGIST-AND-PAYMENT-FLOW","huverse\u002FGPT-FULL-REGIST-AND-PAYMENT-FLOW","huverse","完整可直接部署的 GPT 全流程注册支付系统：协议注册、Stripe\u002FPayPal 支付、Web 控制台、资源池、并发队列、CardGen、session-json\u002Fgetrt 导出","",null,"Python",91,27,8,0,1,23,55,17,60.34,false,"main",true,[],"2026-06-12 04:01:37","# GPT-FULL-REGIST AND PAYMENT-FLOW\n\n\u003Cp align=\"center\">\n  \u003Cb>GPT 协议注册 + Stripe\u002FPayPal 支付 + session-json\u002Fgetrt 导出的一体化全流程系统\u003C\u002Fb>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhuverse\u002FGPT-FULL-REGIST-AND-PAYMENT-FLOW\">\u003Cimg alt=\"Project\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fproject-full--flow-blue\">\u003C\u002Fa>\n  \u003Cimg alt=\"Python\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10%2B-3776AB?logo=python&logoColor=white\">\n  \u003Cimg alt=\"Runtime\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fruntime-Linux-success\">\n  \u003Cimg alt=\"Browser\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbrowser-ruyiPage%20Firefox-orange\">\n  \u003Cimg alt=\"WebUI\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fwebui-stdlib--only-7B68EE\">\n  \u003Cimg alt=\"License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-project--defined-lightgrey\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cb>中文文档\u003C\u002Fb> ｜ \u003Ca href=\"#english-guide\">English Guide\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## 项目定位\n\n`GPT-FULL-REGIST AND PAYMENT-FLOW` 是一个完整的、可直接部署运行的全流程自动化项目。仓库已经包含协议注册机、Stripe\u002FPayPal 支付机、全流程编排器、资源池、队列并发、Web 控制台、调试工具、CardGen 测试卡生成器和可选 getrt\u002Fsession-json 导出能力。\n\n使用者不需要改源码即可运行：按文档安装依赖、放置兼容的 ruyiPage 指纹 Firefox、填写自己的邮箱验证码接口、短信接口、代理和支付资源后，即可通过 CLI 或 Web UI 启动完整流程。\n\n核心目标：\n\n```text\n输入邮箱 \u002F 卡 \u002F 短信接口 \u002F 代理配置\n        ↓\n协议注册并生成 checkoutUrl\n        ↓\nStripe hosted checkout 选择 PayPal\n        ↓\nPayPal signup \u002F SMS OTP \u002F final Agree\n        ↓\n捕获成功支付回跳\n        ↓\n写入成功账号 + 可选导出 session-json\u002Fgetrt\n```\n\n本仓库包含完整运行所需的主流程代码、协议注册机、支付自动化、队列并发、资源池、代理池、Web 管理面板和调试工具。运行时账号池、卡池、短信接口、代理凭据、浏览器内核压缩包等私有运行数据不会提交，需要使用者按自己的环境配置。\n\n---\n\n## 功能亮点\n\n| 模块 | 能力 |\n| --- | --- |\n| 协议注册机 | 注册\u002F登录、邮箱验证码、OpenAI checkoutUrl 生成、协议 trace 输出 |\n| 支付自动化 | Stripe hosted checkout、PayPal 选择、PayPal signup、SMS OTP、final Agree |\n| 成功判定 | 基于 Stripe\u002FOpenAI 明确成功回跳，不依赖宽松页面文本 |\n| DataDome 处理 | CSS bypass、本地 ruyi\u002FDDC slider、`t=bv` blocked verdict 快速识别 |\n| getrt | Codex OAuth PKCE、email OTP、可选 add-phone、CPA\u002Fsub2\u002Fcodex\u002Fraw 输出 |\n| session-json | 支付成功后可选导出，默认支持 CPA 格式 |\n| 资源池 | SQLite 管理 email\u002Fcard\u002Fphone，支持 retry\u002Ffailed\u002F批量操作 |\n| CardGen | Web UI 内置 JP\u002FUS Visa\u002FMasterCard 测试卡生成，可一键入库 |\n| 并发队列 | worker 并发、目标成功数、支付浏览器 slot 控制、子任务日志聚合 |\n| Web UI | 中文控制台、单次运行、并发任务、实时日志、资源池、代理池、失败截图 |\n| 有头调试 | Xvfb + x11vnc + SSH tunnel，本地可观察服务器浏览器并拉取截图 |\n\n---\n\n## 系统架构\n\n```mermaid\nflowchart LR\n    UI[Web UI \u002F CLI] --> O[trial_payment_full_flow.py]\n    Q[Queue Worker] --> O\n\n    O --> P[protocol\u002Fgpt_trial_protocol]\n    P --> C{checkoutUrl}\n    C -->|\u002Fc\u002Fpay\u002Fcs_live...| PAY[ruyipage\u002Fruyi_paypal_flow.py]\n    C -->|invalid session URL| FAIL[拒绝进入支付]\n\n    PAY --> STRIPE[Stripe Checkout]\n    STRIPE --> PP[PayPal Signup \u002F OTP \u002F Agree]\n    PP --> OK[Success Redirect Captured]\n\n    OK --> S[icsuccess_accounts.txt]\n    OK --> SJ[optional session-json]\n    OK --> RT[optional getrt]\n\n    POOL[(SQLite Pool)] --> Q\n    PROXY[(Proxy Pool)] --> UI\n```\n\n松耦合边界：\n\n- 协议机不 import 支付机。\n- 支付机不 import 协议机。\n- getrt 通过 subprocess 调用。\n- Web UI 只启动编排器\u002F队列 worker，不把业务逻辑塞进前端服务。\n\n---\n\n## 目录结构\n\n```text\n.\n├── trial_payment_full_flow.py          # 单账号全流程编排器\n├── run_trial_payment_full_flow.sh      # 单账号入口\n├── full_flow_web.py                    # 中文 Web 控制台\n├── run_full_flow_web.sh                # Web 控制台入口\n├── full_flow_queue_worker.py           # 并发队列 worker\n├── run_full_flow_queue_worker.sh       # 并发队列入口\n├── full_flow_pool.py                   # SQLite email\u002Fcard\u002Fphone 资源池\n├── full_flow_proxy_pool.py             # 代理池与代理测试\n├── full_flow_cardgen.py                # JP\u002FUS Visa\u002FMasterCard 测试卡生成器\n├── full_flow_concurrency_goal_runner.py# 并发达标测试工具\n├── protocol\u002Fgpt_trial_protocol\u002F        # 协议注册机\n├── ruyipage\u002F                           # ruyiPage + Stripe\u002FPayPal 支付自动化\n├── getrt\u002F                              # Codex OAuth getrt\n├── debug\u002Fheaded_payment\u002F               # 有头调试工具\n├── firefox-fingerprintBrowser\u002F         # 指纹 Firefox 放置目录\n├── full_flow.env.example               # 全流程配置模板\n└── FULL_FLOW_INTEGRATION.md            # 集成细节说明\n```\n\n---\n\n## 运行环境\n\n推荐：\n\n- Linux 服务器\n- Python 3.10+\n- Node.js\n- curl \u002F git \u002F tar \u002F xz\n- 可访问目标站点的网络环境\n- 邮箱验证码接口\n- SMS OTP 接口\n- 支付卡数据\n- 可选：支付\u002F协议代理\n- 可选：2Captcha API key\n\n安装系统依赖：\n\n```bash\nsudo apt-get update\nsudo apt-get install -y python3 python3-venv python3-pip nodejs npm curl git xz-utils\n```\n\n---\n\n## 快速安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fhuverse\u002FGPT-FULL-REGIST-AND-PAYMENT-FLOW.git\ncd GPT-FULL-REGIST-AND-PAYMENT-FLOW\n```\n\n支付机需要兼容的 Linux 指纹 Firefox。将浏览器压缩包放到：\n\n```text\nfirefox-fingerprintBrowser\u002Fdownloads\u002F\n```\n\n文件名示例：\n\n```text\nfirefox-xxx.linux-x86_64.tar.xz\n```\n\n然后执行：\n\n```bash\n.\u002Fdeploy_server.sh\n```\n\n脚本会创建：\n\n```text\nprotocol\u002Fgpt_trial_protocol\u002F.venv\nruyipage\u002F.venv\nfull_flow.env\nruyipage\u002F.env\n```\n\n到这一步后，项目代码已经准备就绪；后续只需要在 `full_flow.env`、`ruyipage\u002F.env` 或 Web UI 中填写自己的接口和资源，不需要修改源码。\n\n---\n\n## 配置说明\n\n### `full_flow.env`\n\n复制模板：\n\n```bash\ncp full_flow.env.example full_flow.env\n```\n\n常用配置：\n\n```bash\n# 协议注册代理；不使用代理可设 direct。\nGPT_TRIAL_PROXY=direct\n\n# SQLite 资源池。\nFULL_FLOW_POOL_DB=accfile\u002Fpool\u002Ffull_flow.sqlite3\n\n# Web 控制台。\nFULL_FLOW_WEB_HOST=0.0.0.0\nFULL_FLOW_WEB_PORT=8765\n\n# 支付浏览器并发槽位。\nFULL_FLOW_PAYMENT_BROWSER_SLOTS=2\n\n# DataDome t=bv 后临时支付代理重试一次。\nPAYMENT_TEMP_PROXY_ENABLED=0\nPAYMENT_TEMP_PROXY=proxy-host:port:user:pass(socks)\n\n# 支付阶段从一开始就使用代理。\nPAYMENT_PROXY_ENABLED=0\nPAYMENT_PROXY=proxy-host:port:user:pass(http)\nPAYMENT_PROXY_USE_BRIDGE=1\n```\n\n公开版不会内置任何作者自用的邮箱、短信、代理或支付资源；这些都通过配置项、命令行参数或 Web UI 输入。\n\n### `ruyipage\u002F.env`\n\n复制模板：\n\n```bash\ncp ruyipage\u002F.env.example ruyipage\u002F.env\n```\n\n常用配置：\n\n```bash\nAPIKEY_2CAPTCHA=\nRUYI_PROXY_CHAIN_UPSTREAM=\nRUYI_PROXY_CHAIN_VIA=direct\nRUYI_FIREFOX_PATH=\n```\n\n### 协议机配置\n\n协议机位于：\n\n```text\nprotocol\u002Fgpt_trial_protocol\u002F\n```\n\n可参考：\n\n```text\nprotocol\u002Fgpt_trial_protocol\u002F.env.example\nprotocol\u002Fgpt_trial_protocol\u002FCONFIGURATION.md\n```\n\n正常全流程运行时，不需要手动启动协议机；编排器会通过 CLI\u002Fsubprocess 调用它。\n\n公开版不内置任何私有邮箱验证码接口，也不会默认请求任何作者自用服务。开发者必须配置自己的邮箱验证码服务：\n\n```bash\nGPT_TRIAL_EMAIL_CODE_BASE_URL=https:\u002F\u002Fyour-email-code.example\nGPT_TRIAL_EMAIL_CODE_PROVIDER=auto\nGPT_TRIAL_CUSTOM_EMAIL_DOMAIN=example-mail.invalid\n```\n\n当前内置的是两种通用 JSON 适配形态：\n\n```text\nextract_json:\n  GET \u003Cbase>\u002Fapi\u002Fv1\u002Fextract?email=...&refresh=1&limit=20\n  response: {\"ok\": true, \"email\": \"...\", \"latestCode\": \"123456\", \"latest\": {\"date\": \"...\"}}\n\nopenai_code_json:\n  GET \u003Cbase>\u002Fv1\u002Fopenai-code?recipient=...\n  response: {\"recipient\": \"...\", \"code\": \"123456\", \"receivedAt\": \"...\"}\n```\n\n---\n\n## 单账号全流程（支持并发和队列，在后面说明）\n\n### 使用已有邮箱\n\n```bash\n.\u002Frun_trial_payment_full_flow.sh \\\n  --email \"user@example.com\" \\\n  --email-type \"icloud\" \\\n  --email-code-provider \"extract_json\" \\\n  --email-code-base-url \"https:\u002F\u002Fyour-email-code.example\" \\\n  --card-line \"4111 1111 1111 1111 02\u002F30 123\" \\\n  --sms-line \"+1xxxxxxxxxx----https:\u002F\u002Fsms-api.example\u002Fpath\"\n```\n\n### 自动生成邮箱\n\n```bash\n.\u002Frun_trial_payment_full_flow.sh \\\n  --generate-email \\\n  --email-type \"custom\" \\\n  --email-code-provider \"openai_code_json\" \\\n  --email-code-base-url \"https:\u002F\u002Fyour-email-code.example\" \\\n  --card-line \"4111 1111 1111 1111 02\u002F30 123\" \\\n  --sms-line \"+1xxxxxxxxxx----https:\u002F\u002Fsms-api.example\u002Fpath\"\n```\n\n### 导出 session-json\n\n```bash\n.\u002Frun_trial_payment_full_flow.sh \\\n  --email \"user@example.com\" \\\n  --email-type \"icloud\" \\\n  --email-code-provider \"extract_json\" \\\n  --email-code-base-url \"https:\u002F\u002Fyour-email-code.example\" \\\n  --card-line \"4111 1111 1111 1111 02\u002F30 123\" \\\n  --sms-line \"+1xxxxxxxxxx----https:\u002F\u002Fsms-api.example\u002Fpath\" \\\n  --enable-session-json \\\n  --session-json-format cpa\n```\n\n### 导出 getrt \u002F refresh_token\n\n```bash\n.\u002Frun_trial_payment_full_flow.sh \\\n  --email \"user@example.com\" \\\n  --email-type \"icloud\" \\\n  --email-code-provider \"extract_json\" \\\n  --email-code-base-url \"https:\u002F\u002Fyour-email-code.example\" \\\n  --card-line \"4111 1111 1111 1111 02\u002F30 123\" \\\n  --sms-line \"+1xxxxxxxxxx----https:\u002F\u002Fsms-api.example\u002Fpath\" \\\n  --enable-getrt \\\n  --getrt-output-format cpa\n```\n\nOAuth 需要补手机号时：\n\n```bash\n.\u002Frun_trial_payment_full_flow.sh \\\n  --email \"user@example.com\" \\\n  --email-type \"icloud\" \\\n  --email-code-provider \"extract_json\" \\\n  --email-code-base-url \"https:\u002F\u002Fyour-email-code.example\" \\\n  --card-line \"4111 1111 1111 1111 02\u002F30 123\" \\\n  --sms-line \"+1xxxxxxxxxx----https:\u002F\u002Fpayment-sms-api.example\u002Fpath\" \\\n  --enable-getrt \\\n  --enable-getrt-add-phone \\\n  --getrt-phone-line \"+1yyyyyyyyyy----https:\u002F\u002Foauth-sms-api.example\u002Fpath\"\n```\n\n---\n\n## Web 控制台\n\n启动：\n\n```bash\n.\u002Frun_full_flow_web.sh \\\n  --pool-db accfile\u002Fpool\u002Ffull_flow.sqlite3 \\\n  --host 0.0.0.0 \\\n  --port 8765\n```\n\n浏览器打开：\n\n```text\nhttp:\u002F\u002FSERVER_IP:8765\u002F\n```\n\nWeb UI 支持：\n\n- 单账号启动\n- 资源池任务启动\n- 并发 worker\n- 目标成功数\n- 实时日志刷新\n- 动态日志文件列表\n- 队列父任务和子任务展示\n- 邮箱\u002F卡\u002F手机号池管理\n- JP\u002FUS Visa\u002FMasterCard 测试卡生成和一键入库\n- 失败邮箱查看、恢复、删除\n- 批量删除、批量转重试\n- 代理池新增、删除、注册测试、支付测试\n- 有头失败截图查看和本地拉取\n\n`webui.log` 只存在于 Web 父任务。CLI 任务或队列子任务通常只有：\n\n```text\nsummary.json\nprotocol.log\npayment.log\npayment_result.json\n```\n\nWeb UI 会按 run 实际存在的文件动态展示日志按钮。\n\n---\n\n## 资源池与并发\n\n资源池默认使用 SQLite：\n\n```text\naccfile\u002Fpool\u002Ffull_flow.sqlite3\n```\n\n资源类型：\n\n| 类型 | 说明 |\n| --- | --- |\n| email | GPT 注册邮箱 |\n| card | 支付卡 |\n| phone | 支付短信手机号\u002FAPI |\n\n邮箱池分组：\n\n| 分组 | 含义 |\n| --- | --- |\n| main | 主池 |\n| retry | 预备\u002F重试池 |\n| failed | 失败池 |\n\n拒绝卡类错误会进入 retry。重试时会：\n\n- 使用同一个 GPT 邮箱；\n- 换卡；\n- 重新生成 PayPal signup 邮箱；\n- 不强制换手机号。\n\n### CardGen 测试卡生成\n\nWeb UI 的“资源池”页内置测试卡生成器，可选择：\n\n```text\n国家：日本 JP \u002F 美国 US\n卡组织：Visa \u002F MasterCard\n数量：1-500\n自定义 BIN：可选\n```\n\n可以只生成到文本框，也可以直接一键写入卡池。\n\nCLI 也可以直接调用：\n\n```bash\npython3 full_flow_cardgen.py generate --country jp --brand visa -n 5\npython3 full_flow_cardgen.py generate --country us --brand mastercard -n 5\npython3 full_flow_cardgen.py generate --country jp --brand visa -n 1 --json\n```\n\n输出格式兼容资源池导入：\n\n```text\n4541 5329 0735 5291 01\u002F30 321\n```\n\n### 队列运行\n\nn 并发运行，实际可按资源和浏览器稳定性逐步扩展到 8 并发。\n\n```bash\n.\u002Frun_full_flow_queue_worker.sh \\\n  --pool-db accfile\u002Fpool\u002Ffull_flow.sqlite3 \\\n  --workers 2 \\\n  --max-runs 2\n```\n\n3 并发，目标成功 3 个，最多启动 6 个：\n\n```bash\n.\u002Frun_full_flow_queue_worker.sh \\\n  --pool-db accfile\u002Fpool\u002Ffull_flow.sqlite3 \\\n  --workers 3 \\\n  --success-target 3 \\\n  --max-runs 6\n```\n\n并发策略：\n\n```text\n协议阶段：按 worker 并发\n支付阶段：受 FULL_FLOW_PAYMENT_BROWSER_SLOTS 限制\nFirefox 启动：短锁串行，避免 backend 连接失败\n```\n\n---\n\n## 输出文件\n\n每次运行生成：\n\n```text\nruntime\u002Ffull_flow\u002F\u003Crun_id>\u002F\n```\n\n常见文件：\n\n```text\nsummary.json\nprotocol.log\nprotocol_results.jsonl\npayment.log\npayment_result.json\nwebui.log                  # 仅 Web 父任务\ngetrt.log                  # 启用 getrt 时\ngetrt_result.json          # 启用 getrt 时\nweb_session_result.json    # 启用 session-json 时\n```\n\n成功账号：\n\n```text\naccfile\u002Fpwd\u002Ficsuccess_accounts.txt\n```\n\n格式为一行一个 GPT 邮箱：\n\n```text\nuser@example.com\n```\n\nsession-json：\n\n```text\naccfile\u002Fsession_json\u002F\u003Cemail>.json\n```\n\ngetrt：\n\n```text\naccfile\u002Fjson\u002F\u003Cemail>.json\n```\n\nCPA 输出结构：\n\n```json\n{\n  \"access_token\": \"...\",\n  \"account_id\": \"...\",\n  \"email\": \"user@example.com\",\n  \"expired\": \"...\",\n  \"last_refresh\": \"...\",\n  \"refresh_token\": \"...\",\n  \"type\": \"codex\"\n}\n```\n\n---\n\n## 支付成功判定\n\n支付成功只认明确链路信号：\n\n```text\npm-redirects.stripe.com\u002Freturn\u002F...status=success\npay.openai.com\u002F...redirect_status=succeeded\npay.openai.com\u002F...returned_from_redirect=true\nchatgpt.com\u002Fpayments\u002Fsuccess\n```\n\n协议阶段返回：\n\n```text\nUser is already paid\n```\n\n会被视为幂等成功：\n\n```text\nstatus=success\nreason=already_paid\n```\n\n这表示 OpenAI 后端已经确认该账号处于 paid 状态。\n\n---\n\n## DataDome \u002F CAPTCHA\n\n默认顺序：\n\n```text\nCSS bypass\n  -> 本地 ruyi\u002FDDC slider\n  -> 显式启用时才使用 2Captcha\n```\n\n如果 DataDome iframe URL 出现：\n\n```text\nt=bv\n```\n\n表示 blocked verdict，即当前 IP\u002Fsession 被阻断，不会继续盲拖滑块。\n\n可选配置：\n\n```bash\nPAYMENT_TEMP_PROXY_ENABLED=1\nPAYMENT_TEMP_PROXY=proxy-host:port:user:pass(socks)\n```\n\n效果：\n\n```text\npayment direct\n  -> 遇到 DataDome t=bv\n  -> 使用临时支付代理重试一次\n```\n\n---\n\n## 有头调试\n\n工具目录：\n\n```text\ndebug\u002Fheaded_payment\u002F\n```\n\n本地启动 VNC 隧道：\n\n```bash\nSSHPASS='your-ssh-password' .\u002Fdebug\u002Fheaded_payment\u002Fconnect_local.sh\n```\n\n本地 VNC Viewer 连接：\n\n```text\n127.0.0.1:5901\n```\n\n服务器有头运行：\n\n```bash\n.\u002Fdebug\u002Fheaded_payment\u002Frun_headed_payment.sh \\\n  --email \"user@example.com\" \\\n  --email-type icloud \\\n  --email-code-provider extract_json \\\n  --email-code-base-url \"https:\u002F\u002Fyour-email-code.example\" \\\n  --card-line \"4111 1111 1111 1111 02\u002F30 123\" \\\n  --sms-line \"+1xxxxxxxxxx----https:\u002F\u002Fsms-api.example\u002Fpath\"\n```\n\n停止虚拟桌面：\n\n```bash\n.\u002Fdebug\u002Fheaded_payment\u002Fserver_desktop.sh stop\n```\n\n有头失败时，支付机只在 headed\u002Fdebug 模式下保存截图。将服务器截图拉到本地：\n\n```bash\nSSHPASS='your-ssh-password' .\u002Fdebug\u002Fheaded_payment\u002Fpull_payment_screenshots.sh latest\n```\n\n本地输出目录：\n\n```text\nruntime\u002Flocal_payment_screenshots\u002F\u003Crun_id>\u002F\n```\n\n---\n\n## 常见问题\n\n### `webui.log not found`\n\n`webui.log` 只存在于 Web 父任务。队列子任务或 CLI 任务通常只有自身阶段日志。新版 Web UI 会动态展示可用日志。\n\n### `Stripe amount check failed`\n\nStripe 页面金额不是 0，例如 `$20.00`。这是硬失败，不重试当前支付阶段。\n\n### `BrowserConnectError`\n\nruyi\u002FFirefox backend 启动连接失败。队列模式下先降低：\n\n```bash\nFULL_FLOW_PAYMENT_BROWSER_SLOTS=1\n```\n\n稳定后再提高到 2\u002F3。\n\n### `DataDome t=bv`\n\n这是 blocked verdict，不是滑块问题。需要更换支付出口或启用临时支付代理。\n\n---\n\n## 开发者约定\n\n建议开发原则：\n\n- 先看日志\u002F抓包\u002F运行证据，再改代码。\n- 只修真实失败层。\n- 不增加无意义长等待。\n- 不使用宽松页面文本替代支付成功回跳。\n- 协议、支付、getrt 保持 subprocess 边界。\n\n基础检查：\n\n```bash\npython3 -m py_compile \\\n  trial_payment_full_flow.py \\\n  full_flow_web.py \\\n  full_flow_pool.py \\\n  full_flow_proxy_pool.py \\\n  full_flow_queue_worker.py \\\n  getrt\u002Fcodex_oauth_getrt.py \\\n  ruyipage\u002Fruyi_paypal_flow.py\n```\n\n---\n\n\u003Ca id=\"english-guide\">\u003C\u002Fa>\n\n## English Guide\n\n`GPT-FULL-REGIST AND PAYMENT-FLOW` is a complete automation system for GPT protocol registration, Stripe\u002FPayPal checkout, successful-account archival, optional session-json export, and optional Codex OAuth getrt export.\n\nThe repository is ready to run after configuration. You do not need to modify source code for normal usage: install dependencies, place a compatible ruyiPage fingerprint Firefox build, configure your own email-code service, SMS API, proxy exits, and payment resources, then run through CLI or the Web UI.\n\n### Pipeline\n\n```text\nemail \u002F card \u002F SMS API \u002F proxy config\n        ↓\nprotocol registration and checkoutUrl generation\n        ↓\nStripe hosted checkout\n        ↓\nPayPal signup \u002F SMS OTP \u002F final Agree\n        ↓\nsuccess redirect capture\n        ↓\nsuccess account archival + optional session-json\u002Fgetrt\n```\n\n### Modules\n\n```text\nprotocol\u002Fgpt_trial_protocol  # protocol registrar\nruyipage                    # ruyiPage Firefox payment automation\ngetrt                       # optional Codex OAuth refresh_token exporter\ntrial_payment_full_flow.py  # orchestrator\nfull_flow_web.py            # Web console\nfull_flow_queue_worker.py   # queue worker\nfull_flow_cardgen.py        # JP\u002FUS Visa\u002FMasterCard card generator\n```\n\nThe modules are loosely coupled. The orchestrator connects them through CLI\u002Fsubprocess contracts.\n\n### Setup\n\n```bash\nsudo apt-get update\nsudo apt-get install -y python3 python3-venv python3-pip nodejs npm curl git xz-utils\n\ngit clone https:\u002F\u002Fgithub.com\u002Fhuverse\u002FGPT-FULL-REGIST-AND-PAYMENT-FLOW.git\ncd GPT-FULL-REGIST-AND-PAYMENT-FLOW\n```\n\nPlace a compatible Linux fingerprint Firefox archive under:\n\n```text\nfirefox-fingerprintBrowser\u002Fdownloads\u002F\n```\n\nThen run:\n\n```bash\n.\u002Fdeploy_server.sh\n```\n\nEdit:\n\n```text\nfull_flow.env\nruyipage\u002F.env\n```\n\n### Single Run\n\n```bash\n.\u002Frun_trial_payment_full_flow.sh \\\n  --email \"user@example.com\" \\\n  --email-type \"icloud\" \\\n  --email-code-provider \"extract_json\" \\\n  --email-code-base-url \"https:\u002F\u002Fyour-email-code.example\" \\\n  --card-line \"4111 1111 1111 1111 02\u002F30 123\" \\\n  --sms-line \"+1xxxxxxxxxx----https:\u002F\u002Fsms-api.example\u002Fpath\"\n```\n\nEnable session-json:\n\n```bash\n--enable-session-json --session-json-format cpa\n```\n\nEnable getrt:\n\n```bash\n--enable-getrt --getrt-output-format cpa\n```\n\nEnable OAuth add-phone for getrt:\n\n```bash\n--enable-getrt-add-phone \\\n--getrt-phone-line \"+1yyyyyyyyyy----https:\u002F\u002Foauth-sms-api.example\u002Fpath\"\n```\n\n### Web UI\n\n```bash\n.\u002Frun_full_flow_web.sh \\\n  --pool-db accfile\u002Fpool\u002Ffull_flow.sqlite3 \\\n  --host 0.0.0.0 \\\n  --port 8765\n```\n\nOpen:\n\n```text\nhttp:\u002F\u002FSERVER_IP:8765\u002F\n```\n\nThe Web UI supports single runs, queue workers, resource pools, proxy pools, live logs, queue child runs, failed-email restore\u002Fdelete, and dynamic per-run log files.\n\nIt also includes a card generator for JP\u002FUS Visa\u002FMasterCard test-card lines and can insert generated cards into the SQLite card pool.\n\n### CardGen\n\n```bash\npython3 full_flow_cardgen.py generate --country jp --brand visa -n 5\npython3 full_flow_cardgen.py generate --country us --brand mastercard -n 5\npython3 full_flow_cardgen.py generate --country jp --brand visa -n 1 --json\n```\n\nThe default line format can be seeded into the card pool directly:\n\n```text\n4541 5329 0735 5291 01\u002F30 321\n```\n\n### Queue Mode\n\n```bash\n.\u002Frun_full_flow_queue_worker.sh \\\n  --pool-db accfile\u002Fpool\u002Ffull_flow.sqlite3 \\\n  --workers 2 \\\n  --max-runs 2\n```\n\nTarget-success mode:\n\n```bash\n.\u002Frun_full_flow_queue_worker.sh \\\n  --pool-db accfile\u002Fpool\u002Ffull_flow.sqlite3 \\\n  --workers 3 \\\n  --success-target 3 \\\n  --max-runs 6\n```\n\n### Outputs\n\nPer-run output:\n\n```text\nruntime\u002Ffull_flow\u002F\u003Crun_id>\u002F\n```\n\nSuccessful account list:\n\n```text\naccfile\u002Fpwd\u002Ficsuccess_accounts.txt\n```\n\nOne email per line:\n\n```text\nuser@example.com\n```\n\nsession-json:\n\n```text\naccfile\u002Fsession_json\u002F\u003Cemail>.json\n```\n\ngetrt output:\n\n```text\naccfile\u002Fjson\u002F\u003Cemail>.json\n```\n\n### Success Signals\n\nPayment success is accepted only from explicit redirect signals:\n\n```text\npm-redirects.stripe.com\u002Freturn\u002F...status=success\npay.openai.com\u002F...redirect_status=succeeded\npay.openai.com\u002F...returned_from_redirect=true\nchatgpt.com\u002Fpayments\u002Fsuccess\n```\n\n`User is already paid` from the protocol stage is treated as idempotent success.\n\n### Headed Debug Screenshots\n\nPayment failure screenshots are saved only for headed\u002Fdebug runs. Pull them from\nthe server to the local repository with:\n\n```bash\nSSHPASS='your-ssh-password' .\u002Fdebug\u002Fheaded_payment\u002Fpull_payment_screenshots.sh latest\n```\n\nLocal output:\n\n```text\nruntime\u002Flocal_payment_screenshots\u002F\u003Crun_id>\u002F\n```\n","GPT-FULL-REGIST-AND-PAYMENT-FLOW 是一个完整的、可直接部署的 GPT 全流程注册支付系统，集成了协议注册、Stripe\u002FPayPal 支付处理、Web 控制台等功能。项目使用 Python 语言开发，支持 Linux 运行环境，并提供基于 Firefox 的 ruyiPage 浏览器自动化方案。其核心功能包括自动化的协议注册与登录、支付流程自动化（涵盖 Stripe 和 PayPal）、资源池管理（如邮箱、卡号、电话等）以及并发队列处理。此外，还提供了 CardGen 测试卡生成工具和可选的数据导出功能（如 session-json 和 getrt）。该系统适用于需要自动化处理用户注册及支付流程的场景，例如批量创建测试账号或进行支付流程的压力测试。",2,"2026-06-11 04:08:18","CREATED_QUERY"]