[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94865":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":14,"stars30d":14,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":15,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":16,"fork":16,"defaultBranch":17,"hasWiki":18,"hasPages":16,"topics":19,"createdAt":8,"pushedAt":8,"updatedAt":20,"readmeContent":21,"aiSummary":22,"trendingCount":13,"starSnapshotCount":13,"syncStatus":23,"lastSyncTime":24,"discoverSource":25},94865,"link-pp","eatWhitePorridge\u002Flink-pp","eatWhitePorridge",null,"Python",112,54,1,0,7,43.42,false,"main",true,[],"2026-08-24 04:01:22","# PayPal 0 元提链\n\n使用指定代理出口和可独立选择的账单国家生成 0 元 Checkout，并提取 PayPal redirect 与\nPayPal Billing Agreement 链接。项目只负责提链，不注册 PayPal 用户、不处理短信\n验证码、不执行 PayPal 授权回调，也不等待付款结果。\n\n## 流程\n\n```text\n巴西代理池\n  -> 校验代理出口为 BR，并校验 ChatGPT AT\n  -> 首次 Checkout 请求直接携带 plus-1-month-free\n  -> 使用 DE\u002FEUR 创建 oaics_ Checkout\n  -> 提交德国账单 taxes\n  -> 严格核验应付金额为 0\n  -> payment_method_types 包含 paypal 时走标准 PayPal\n  -> Stripe Elements Session + ConfirmationToken\n  -> ChatGPT confirm(selected_payment_method_type=paypal)\n  -> Stripe SetupIntent\u002FPaymentIntent confirm\n  -> 解析 paypal.com\u002Fagreements\u002Fapprove?ba_token=BA-...\n  -> 返回链接并停止\n```\n\n默认执行上述 `oaics_` 流程。OAICS 始终在创建 Checkout 时携带\n`plus-1-month-free`，不受 Stripe 优惠策略影响。\n\n勾选“Stripe 链提炼”后改为严格的 `cs_live_` Hosted Checkout 流程。\nStripe 模式可选择 Python 或 Go 引擎，默认为 Python；Go 只处理\n`cs_live_`\u002F`cs_test_` Stripe Session，OAICS 继续由 Python 处理。两种模式和\n两个引擎都不会自动互相回退。\n\nStripe 优惠策略：\n\n- `upfront`（前置优惠）：创建 Checkout 时直接携带优惠；若 Stripe `init`\n  仍不是 0 元，当前 Checkout 失败，不自动转后置 update。\n- `post_update`（后置 update 优惠，默认）：先创建无优惠 Checkout，通过\n  Stripe `init`\u002FElements 确认开放 PayPal，再调用\n  `\u002Fbackend-api\u002Fpayments\u002Fcheckout\u002Fupdate` 施加优惠并重新 `init` 至 0 元。\n- `mixed`（混合优惠）：Checkout 第 1\u002F3\u002F5... 轮使用前置，第 2\u002F4\u002F6...\n  轮使用后置 update。\n\nPython 和 Go 的 Stripe 共同主链为：\n\n```text\ninit -> Elements\u002FPayPal 检测 -> 可选 update + 重新 init -> 严格 0 元校验\n     -> tax region -> ChatGPT billing snapshot -> 创建 PayPal pm_*\n     -> 单次 compact confirm -> 可选 manual approve -> 轮询 redirect -> PayPal BA\n```\n\n`approve` 后只轮询原 submission，不再发起第二次 confirm。Stripe 返回\n`generic_decline` 等 PayPal setup 终态时会立即归类为拒绝，不会误报为\n“未返回 redirect”。\n\n只有 Checkout 实际返回 `cpmt_` 自定义支付方式时才使用\n`custom_payment_method\u002Fstart` 兼容分支；空的 `custom_payment_methods` 不代表未开放\nPayPal，是否开放以 `payment_method_types` 为准。\n\n创建 Checkout 与首次提链复用同一 HTTP 会话。代理预检失败不会消耗\nCheckout 次数。当 `approve blocked`、PayPal setup decline、OAICS confirm 持续\nblocked、明确未返回 PayPal 方法或 Checkout 失效时，当前订单会立即停止并\n创建新单；其他短暂异常会在同一 Checkout 内更换代理重试。\n\n预检会先在同一 HTTP 会话预热 ChatGPT 页面\u002FCookie，再请求 `\u002Fbackend-api\u002Fme`。\nCloudflare Challenge、代理出口查询失败和连接中断不在同一代理上重试：预检请求\n默认最多等待 5 秒，失败后直接切换下一出口，且不消耗 Checkout 次数。预检并发默认\n20 路，可通过 `HANDOFF_PREFLIGHT_TIMEOUT` 和 `HANDOFF_PREFLIGHT_CONCURRENCY`\n调整。相关状态码、`cf-ray`\u002F`cf-mitigated` 等诊断字段只写入后端脱敏日志。\n\n## 输入\n\n- 单个 AT 或批量 AT\n- 代理出口国家与单代理池\n- 独立账单国家（默认巴西出口使用德国 DE\u002FEUR，也可手动选择巴西 BR\u002FUSD 等国家）\n- OAICS 或 Stripe Hosted 提链模式\n- Stripe Hosted 的 Python\u002FGo 执行引擎\n- Stripe Hosted 的前置、后置 update 或混合优惠策略\n- Checkout 次数与每轮提链次数\n- 批量并发数\n\n支持 `socks5:\u002F\u002F`、`socks5h:\u002F\u002F`、`http:\u002F\u002F`、`https:\u002F\u002F`，也支持\n`host:port:user:password` 裸格式。SOCKS5 输入会统一使用代理端 DNS（`socks5h`），\n避免本地 DNS 模式访问 ChatGPT 超时。\n\nPython 主链使用 Firefox 147 TLS\u002FHTTP 指纹，并保持 UA、请求头和 Sentinel 上下文一致。\n\n## 输出\n\n- PayPal BA approve URL\n- OAICS provider redirect URL\n- ChatGPT Checkout URL\n- BA token 与 Checkout session\n- 批量 CSV\n\n## API\n\n```text\nGET  \u002Fapi\u002Fmeta\nPOST \u002Fapi\u002Fjobs\nGET  \u002Fapi\u002Fjobs\u002F\u003Cjob_id>\nPOST \u002Fapi\u002Fjobs\u002F\u003Cjob_id>\u002Fcancel\nGET  \u002Fapi\u002Fjobs\u002F\u003Cjob_id>\u002Fevents\nGET  \u002Fapi\u002Fjobs\u002F\u003Cjob_id>\u002Fevents.json\n\nPOST \u002Fapi\u002Fbatches\nGET  \u002Fapi\u002Fbatches\nGET  \u002Fapi\u002Fbatches\u002F\u003Cbatch_id>\nPOST \u002Fapi\u002Fbatches\u002F\u003Cbatch_id>\u002Fcancel\nPOST \u002Fapi\u002Fbatches\u002F\u003Cbatch_id>\u002Fretry\nGET  \u002Fapi\u002Fbatches\u002F\u003Cbatch_id>\u002Fresults.csv\n```\n\n创建任务时，`country` 表示代理出口国家，`billing_country` 表示账单国家。例如\n`{\"country\":\"BR\",\"billing_country\":\"DE\"}` 使用巴西出口和德国账单；将\n`billing_country` 改为 `BR` 即使用巴西出口和巴西账单。未传 `billing_country`\n时继续使用原有自动映射。\n\nStripe 任务另外传入 `stripe_checkout=true`，`stripe_engine` 支持 `python` 或\n`go`，`stripe_promo_strategy` 支持 `upfront`、`post_update` 或 `mixed`。例如：\n\n```json\n{\n  \"country\": \"BR\",\n  \"billing_country\": \"DE\",\n  \"stripe_checkout\": true,\n  \"stripe_engine\": \"go\",\n  \"stripe_promo_strategy\": \"mixed\"\n}\n```\n\n批次看板使用 `compact=1` 获取轻量任务字段，并通过 `after_revision=\u003Crevision>`\n跳过未变化的完整响应。默认并发为 8，并发参数不设应用层上限；实际同时\n执行数受批次任务数、服务器资源和可选的 `JOB_WORKERS` 部署配置影响。未配置\n`JOB_WORKERS` 时，线程池容量与单批最大任务数一致，默认为 200。\n\n## 本地运行\n\n需要 Python 3.12+、Node.js 22.19+ 和 Go 1.26+。\n\n```bash\npython3 -m venv .venv\nsource .venv\u002Fbin\u002Factivate\npip install -r requirements.txt\nnpm ci\ngo build -o bin\u002Fstripe-worker .\u002Fcmd\u002Fstripe-worker\nexport STRIPE_GO_WORKER=\"$PWD\u002Fbin\u002Fstripe-worker\"\npython run.py\n```\n\n地址：`http:\u002F\u002F127.0.0.1:5572`\n\n## Docker\n\n```bash\ndocker compose up -d --build\ndocker compose logs -f\n```\n\n前台仅显示关键里程碑和警告。每个任务的完整脱敏日志保存在 Docker 持久卷的\n`\u002Fdata\u002Fdiagnostics\u002F\u003Cjob_id>.jsonl`，容器重建后仍保留。结构化协议记录覆盖\n`checkout_create`、`checkout_state`、`checkout_taxes`、`checkout_promo_update`、\n`stripe_elements_session`、`stripe_confirmation_token`、`checkout_confirm`、\n`stripe_intent_confirm` 和兼容分支的\n`custom_payment_start`，PayPal 跳转另记录 `paypal_redirect`。记录包含 HTTP 状态、脱敏\n请求\u002F响应及上游 trace headers；不会记录 AT、Cookie、Sentinel、代理凭证或完整账单\n个人信息。\n\n## 验证\n\n```bash\npytest -q\ngo test .\u002F...\ngo vet .\u002F...\npython3 -m compileall -q handoff run.py wsgi.py\nnode --check handoff\u002Fstatic\u002Fapp.js\n```\n","这是一个用于自动化生成并提取 PayPal 免费账单授权链接（BA Token）的 Python 工具，专为 ChatGPT Plus 订阅场景设计。核心功能包括：通过指定代理出口国家（如巴西）与独立账单国家（如德国），结合 Stripe Checkout 流程（OAICS 或 Hosted 模式），严格校验应付金额为 0 元后，提取 PayPal 的 \u002Fagreements\u002Fapprove?ba_token=... 链接；支持前置\u002F后置优惠策略、多代理预检、并发提链及 CSV 批量输出。项目不涉及用户注册、验证码处理或支付回调，仅完成链接生成与解析。适用于需批量获取 PayPal 授权链接以绕过地区限制开通 ChatGPT Plus 的合规技术验证场景。",2,"2026-08-17 02:30:08","CREATED_QUERY"]