# GuJumpgate v0.1.5

发布日期：2026-05-26

本次版本主要围绕 Plus OAuth 接码链路、PayPal Hosted Checkout 稳定性、手机接码平台扩展和批量自动运行恢复能力做增强。重点目标是适配当前 OAuth 风控下更高频出现的手机号验证、支付回调异常和接码平台供给不稳定问题。

## 本次更新

- 版本号升级到 `0.1.5`，发布版本为 `GuJumpgate V0.1.5`。
- Plus 账号接入策略新增 `先手机号注册 Oauth` 与 `后手机号绑定 Oauth` 两种模式：
  - `先手机号注册 Oauth`：手机号注册后先创建 PayPal Hosted Checkout，再刷新 OAuth、绑定邮箱并完成回调验证。
  - `后手机号绑定 Oauth`：邮箱注册后先创建 Plus Checkout，再刷新 OAuth、完成手机号验证并回调。
- OpenAI / Plus 流程步骤定义已按新增 OAuth 接码策略重新编排，手机号验证、绑定邮箱、创建 Checkout、确认 OAuth、平台回调验证的顺序更贴近实际页面状态。
- 手机接码平台从 `HeroSMS / 5sim / NexSMS` 扩展到 8 个平台：
  - HeroSMS
  - 5sim
  - NexSMS
  - SMSBower
  - SMS Verification Number
  - GrizzlySMS
  - SMSPool
  - ChatGPT API 接码
- 新增各接码平台独立配置能力，包括 API Key、Base URL、Service Code、国家、候选国家、最低购买价、最高价格、优先价格等字段，避免不同平台共用 HeroSMS 价格配置导致误判。
- HeroSMS 默认国家从 Thailand 调整为 Colombia，并扩展国家候选映射：Philippines、Kenya、Poland、Romania、Colombia、Brazil、Chile、Japan 等。
- 新增 ChatGPT API 接码池：
  - 支持批量导入“手机号 + 验证码接口”。
  - 支持按使用次数、当前号码、启用状态、异常状态筛选。
  - 支持手动启用 / 禁用、清空使用次数、全部删除。
  - 支持连续取码失败后自动禁用号码。
  - 支持按手机号前缀推断国家。
- PayPal Hosted Checkout 接码能力增强：
  - 新增“首次直接重发”开关。
  - 新增首次等码秒数、后续等码秒数、轮询次数、轮询间隔、重发上限配置。
  - PayPal 接码池支持自动禁用失败号码，并自动切换下一个启用号码。
  - 验证码接口返回旧码或非验证码内容时，会按配置继续等待或触发 Resend。
- PayPal Hosted Checkout 异常识别增强：
  - 检测 `genericError` 后会刷新 ChatGPT 会话并判断 Plus 是否已经生效，已生效时直接继续流程。
  - 增加 PayPal blocked 页面、Guest Checkout 卡错误、手机号错误识别。
  - 增加 Hosted Checkout 地址错误、银行卡分支 fallback、银行卡拒绝等状态识别。
  - 支付流程完成后自动清理 Plus / PayPal / GoPay 相关标签页。
- Checkout 填写增强：
  - 自动把当前注册邮箱填入 Checkout 联系邮箱。
  - 账单地址填写和地址建议选择失败时增加更明确的日志。
  - 针对 SMS OAuth 流程，非免费试用场景会保留当前注册流程并回到 Checkout 步骤重建支付。
- OAuth 登录与注册页兼容增强：
  - 支持自动跳过 create-account-enroll-passkey 通行密钥引导页。
  - 支持已有账号选择页，自动点击已有 session 继续登录。
  - 登录后进入 add phone 页面时，交给手机号验证步骤继续处理。
  - 登录验证码会在侧边栏中展示，便于排查验证码轮询状态。
  - `bind-email` 步骤在手机号注册流程中可自动生成缺失的 Cloudflare Temp Email / Cloudmail 邮箱。
- 自动运行增强：
  - 自动重试时保留 Hosted Checkout 接码池、Resend、轮询、自动禁用等新配置。
  - PayPal `genericError` 和验证码 Resend 达到上限时，自动运行会给出更明确的停止原因。
  - 下游步骤重启时会清理登录验证码缓存，减少旧验证码干扰。
- Hotmail Helper 启动体验增强：
  - 本地 helper 新增 `GET /health` 健康检查。
  - CORS 允许 `GET, POST, OPTIONS`。
  - Windows 启动脚本增加 Python 版本检查、端口占用检查、启动日志、错误提示和 bundled Python 识别。
  - 新增忽略 `data/hotmail-helper-start.log`。
- 文档与发布流程更新：
  - `RELEASING.md` 更新到 v0.1.5。
  - 侧边栏能力矩阵移除旧的 CPA 手机号注册额外风险弹窗描述，改为按能力矩阵真实结果说明。
  - README 中同步调整当前 OAuth / SESSION JSON 使用提示。

## 修复内容

- 修复不同手机接码平台仍读取 HeroSMS 价格字段的问题，SMSPool、GrizzlySMS 等平台会读取自己的价格配置。
- 修复平台回调验证使用旧状态的问题，现在会合并最新状态后再判断 CPA / SUB2API / 本地 CPA JSON 导入分支。
- 修复新增 OAuth 接码策略下步骤号显示不准确的问题。
- 修复登录验证码状态没有及时清空或同步展示的问题。
- 修复 PayPal 验证码页不在 verification 阶段时仍尝试点击 Resend 的问题。
- 修复 PayPal Hosted Checkout 落到银行卡分支时缺少明确错误的问题。
- 修复手机号注册后绑定邮箱时，邮箱为空会导致流程卡住的问题。

## 测试覆盖

- 新增 `tests/background-phone-provider-price-fields.test.js`，覆盖 SMSPool / GrizzlySMS 等平台独立价格字段。
- 新增 `tests/chatgpt-api-phone-provider.test.js`，覆盖 ChatGPT API 接码池选号、国家推断和失败自动禁用。
- 新增 `tests/fetch-login-code-bind-email.test.js`，覆盖手机号注册流程中自动生成并绑定邮箱。
- 新增 `tests/signup-flow-hotmail-bind-email.test.js`，覆盖手机号绑定邮箱时复用当前 Hotmail 账号且不提前标记已使用。
- 新增 `tests/nexsms-phone-provider.test.js`，覆盖 NexSMS 模块化下单与取码。
- 已执行 `node --test tests/*.test.js`，共 19 个用例通过。

## 升级注意

- 当前版本建议优先使用 手机号 OAuth 接码相关策略，`SESSION 拿 AT` 路线已不再作为推荐方案。
- 使用 PayPal Hosted Checkout 时，建议根据接码接口稳定性调整首次等码、后续等码、轮询次数和 Resend 上限。
- 使用 ChatGPT API 接码池或 PayPal 接码池时，开启自动禁用可以减少坏号码反复进入流程，但需要定期补充可用号码。
- Windows 用户如 Hotmail Helper 无法启动，可访问 `http://127.0.0.1:<端口>/health` 检查本地服务状态。
