Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

antTing/Gopay_plus_automatic

Repository files navigation

GoPay Plus 自动订阅机

GitHub Stars

全自动 ChatGPT Plus 订阅工具。

你只需要提供一个 ChatGPT 的 access_token,本工具会自动完成整个 GoPay 付款流程,20 秒内激活 Plus 会员。

不建议没有基础的用户自己部署,请使用gpt和claude的高级模型进行部署,根据需要具体选择场景和改造项目。 本项目 的订阅链路百分百可行,已实践,具体的风控场景是对虚拟号码,即最后一步付款的风控,触发了反欺骗拦截。有其他问题和错误,请找ai分析!

注意:截止到2026年5.12日12时,单个gopay号多绑plus已行不通,目前已知最多绑定1-3个,可根据具体场景选择, 一号一绑则无需注册whatsapp,直接注册gopay或者gojek,订阅过程中输入sms验证码即可。 一号多绑,则可在虚拟手机号期限内,注册gopay,gojek后多次接码 多次绑定即可,也可注册whatsapp,封号风险较大

gopay、gojek账号仍然需要用户自己注册,否则一切免谈,自动化仍然如此,自动化注册gopay,gojek难度过大,无法进行,本项目仅提供gopay自动化注册思路和方法。 作者未尝试过sms api接码和批量接码,但是原理一致,都是可行的,需要用户自己改造smsapi接码的部分,仍然仅提供了参考。

本项目为免费开源,收费售卖者死冯,有问题请联系邮箱links-to@outlook.com 作者不负责任何用户的行为,该项目仅供学习交流。 项目地址https://github.com/ywnd1144/Gopay_plus_automatic

另目前已知的可以获取到plus资格的账号邮箱: Outlook、hotmail,域名邮箱(前提是需要给子域名加上edu,如原域名abc.com,需成edu.abc.com) ip代理 必须是日本(百分百)或者中国台湾地区

它能做什么

  • 输入一个 ChatGPT access_token
  • 自动创建 IDR(印尼盾)订阅订单
  • 自动通过 Stripe + Midtrans + GoPay 完成付款
  • 自动接收并填写 OTP 验证码
  • 自动输入 GoPay PIN
  • 自动验证订阅状态
  • 最终结果:该账号变成 ChatGPT Plus(0 元首月试用)

整个过程约 20 秒,全程无需人工干预(配置好之后)。


你需要准备什么

项目 说明 如何获取
Linux 服务器 推荐 Debian/Ubuntu,1核1G即可 任意云服务商
Python 3.10+ 运行支付核心和编排器 apt install python3
Node.js 18+ 仅 WhatsApp 模式需要 apt install nodejs
SOCKS5 代理 日本/东南亚出口 IP 自建或购买
GoPay 账号 印尼手机号 + 6 位 PIN 用印尼虚拟号注册 Gojek
ChatGPT access_token 要订阅的账号的凭证 见下方获取方法
gopay使用必须开启pin,否则将无法支付。

如何获取 access_token

  1. 用浏览器登录 https://chatgpt.com
  2. 登录后,在地址栏输入:https://chatgpt.com/api/auth/session
  3. 页面会显示一段 JSON,找到 "accessToken" 字段
  4. 复制它的值(以 eyJ 开头的一长串字符,通常 1000+ 字符)
  5. 这就是 access_token

注意:access_token 有效期约 24 小时,过期需要重新获取。

如何注册 GoPay 账号

  1. 在接码平台(如 HeroSMS、5sim)购买一个印尼手机号
  2. 下载 Gojek APP(或用模拟器)
  3. 用该印尼号注册 Gojek 账号
  4. 注册过程中会收到 SMS 验证码(从接码平台获取)
  5. 设置 GoPay PIN(6 位数字,建议所有号统一设同一个 PIN)
  6. 注册完成后,记录:手机号 + PIN

如果你要批量订阅,重复上述步骤注册多个 GoPay 号即可。


架构说明

本项目由 3 个服务组成:

 用户请求
 |
 v
+--------------------------------------------------+
| orchestrator(编排器) |
| 监听 :8800 端口 |
| 接收 /subscribe 请求,协调整个流程 |
+--------------------------------------------------+
 | |
 v v
+-------------------+ +-------------------+
| plus_gopay_links | | OTP 来源 |
| 支付核心 | | (三选一) |
| gRPC :50051 | | |
| 执行 15 步付款 | | 1. 手动/ADB推送 |
| | | 2. 接码平台API |
| | | 3. WhatsApp |
+-------------------+ +-------------------+

你不需要理解内部细节,只需要:

  1. 配置好 config.json
  2. 启动服务
  3. 发 HTTP 请求

安装步骤(从零开始)

第一步:准备服务器

# 以 root 登录你的 Linux 服务器
# 更新系统
apt update && apt upgrade -y
# 安装 Python 3 和 pip
apt install -y python3 python3-pip curl
# 安装 Node.js 18(仅 WhatsApp 模式需要,否则跳过)
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt install -y nodejs

第二步:下载项目

# 把项目放到 /opt/gopay-plus(或任意目录)
cd /opt
git clone <你的仓库地址> gopay-plus
cd gopay-plus

第三步:安装 Python 依赖

pip install -r requirements.txt

如果报错 "externally-managed-environment",加 --break-system-packages:

pip install --break-system-packages -r requirements.txt

第四步:安装 Node.js 依赖(仅 WhatsApp 模式)

cd to_whatsapp && npm install && cd ..

第五步:配置

cp config.example.json config.json
nano config.json # 或用 vim 编辑

config.json 各字段说明:

{
 "gopay": {
 "country_code": "62",
 // 说明:印尼国家码,固定填 62
 "phone_number": "81234567890",
 // 说明:你的 GoPay 手机号,不含国家码
 // 如果你用多号模式,这里填默认号,每次请求可覆盖
 "pin": "123456",
 // 说明:你的 GoPay 6 位 PIN
 // 批量模式建议所有号设同一个 PIN
 "browser_locale": "zh-CN",
 // 说明:浏览器语言,一般不用改
 "pin_locale": "id"
 // 说明:PIN 页面语言,固定 id(印尼语)
 },
 "proxy": "socks5://127.0.0.1:1080",
 // 说明:SOCKS5 代理地址
 // 必须是日本或东南亚出口 IP
 // 如果代理在本机,填 127.0.0.1:端口
 // 如果在其他服务器,填 IP:端口
 "orchestrator": {
 "port": 8800,
 // 说明:编排器监听端口
 "otp_timeout": 90,
 // 说明:等待 OTP 的最大秒数,超时则失败
 "auth_token": "my-secret-token-123"
 // 说明:API 访问密钥,防止未授权调用
 // 自己随便设一个随机字符串
 // 调用 /subscribe 时需要在 Header 带上:Authorization: Bearer my-secret-token-123
 },
 "otp": {
 "mode": "manual",
 // 说明:OTP 接收模式,三选一:
 // "manual" - 手动输入或 ADB 自动转发
 // "sms_api" - 接码平台 API 自动获取
 // "whatsapp" - WhatsApp 自动接收
 "sms_api": {
 "provider": "herosms",
 // 说明:接码平台名称(仅做标记,不影响逻辑)
 "api_key": "",
 // 说明:接码平台的 API Key
 "base_url": "https://api.herosms.com",
 // 说明:接码平台的 API 地址
 "country": "id",
 // 说明:国家代码
 "service": "gopay",
 // 说明:服务名称
 "poll_interval_sec": 3,
 // 说明:每隔几秒查询一次
 "poll_timeout_sec": 90
 // 说明:最多查询多少秒
 },
 "whatsapp": {
 "grpc_addr": "127.0.0.1:50056"
 // 说明:WhatsApp Relay 的 gRPC 地址
 }
 }
}

注意:JSON 不支持注释,实际使用时删掉所有 // 开头的行。

第六步:启动

一键启动:

chmod +x start.sh
./start.sh

或手动启动(方便调试):

# 终端 1:启动支付核心
cd plus_gopay_links
python3 payment_server.py --config ../config.json --listen :50051
# 终端 2:启动编排器
cd /opt/gopay-plus
python3 orchestrator.py
# 终端 3(仅 WhatsApp 模式):启动 WhatsApp Relay
cd to_whatsapp
WA_PAIRING_PHONE=6281234567890 WA_PROXY_URL=socks5://127.0.0.1:1080 WA_GRPC_PORT=50056 node index.js

第七步:验证服务正常

curl http://localhost:8800/health

应该返回:

{"ok": true, "service": "gopay-plus", "otp_mode": "manual"}

使用方法

基本用法(单次订阅)

curl -X POST http://localhost:8800/subscribe \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer my-secret-token-123" \
 -d '{"session_token": "eyJhbGciOiJSUzI1NiIs..."}'

成功返回:

{"ok": true, "charge_ref": "A120260512035748B2ex55ZFzbID", "elapsed_ms": 19928}

失败返回:

{"ok": false, "error": "otp_timeout", "detail": "timeout waiting for OTP after 90s", "elapsed_ms": 91000}

多号用法(每次指定不同手机号)

curl -X POST http://localhost:8800/subscribe \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer my-secret-token-123" \
 -d '{
 "session_token": "eyJ...",
 "phone_number": "82222222222",
 "pin": "123456"
 }'

phone_number 和 pin 是可选参数,不传则使用 config.json 中的默认值。


OTP 接收方案详解

这是最关键的部分。GoPay 在付款过程中会发一个 6 位验证码到你的手机,你需要把这个验证码传给本工具。

有三种方式,根据你的场景选择:


方案一:manual 模式(手动输入)

最简单,适合新手调试和少量使用。

原理:你自己看到验证码后,手动发一个 HTTP 请求把验证码告诉编排器。

设置:config.json 中 otp.mode 设为 "manual"

使用流程:

1. 你发起 /subscribe 请求
2. 等约 10 秒,GoPay 会发验证码到你手机(SMS 或 WhatsApp)
3. 你看到验证码后,在 90 秒内执行:
 curl -X POST http://服务器:8800/otp -d '{"otp": "123456"}'
4. 编排器收到验证码,自动完成后续步骤
5. 返回订阅结果

如果你有 Android 模拟器(MuMu、雷电等),可以用 otp_forwarder.py 自动化这一步:

# 修改 otp_forwarder.py 顶部的配置:
# OTP_URL = "http://你的服务器IP:8800/otp"
# AUTH = "Bearer my-secret-token-123"
# 确保 ADB 连接正常
adb connect 127.0.0.1:7555
adb devices
# 启动自动转发(保持窗口开着)
python3 otp_forwarder.py

这样只要模拟器里的 WhatsApp 收到验证码通知,脚本就会自动转发给编排器。

重要:不要点开 WhatsApp 的通知消息,否则 ADB 抓不到。


方案二:sms_api 模式(接码平台自动获取)

适合批量生产,全自动无人值守。

原理:GoPay 发 SMS 验证码到虚拟手机号,编排器自动调接码平台 API 查询并获取验证码。

设置:

  1. 在接码平台注册账号,充值,获取 API Key
  2. config.json 中 otp.mode 设为 "sms_api"
  3. 填写 sms_api 配置(api_key、base_url)

对接你的接码平台:

编排器默认会请求这个 URL:

GET {base_url}?action=get_sms&api_key={你的key}&phone={手机号}&country=id

然后从响应中提取 6 位数字。

如果你的接码平台 URL 格式不同,编辑 orchestrator.py 中的 _wait_sms_api_otp 函数,修改 url 那一行即可。响应解析是通用的(自动从任何文本/JSON 中提取 6 位数字)。

常见接码平台 API 格式:

HeroSMS:
 GET https://api.herosms.com/api/get_sms?api_key=KEY&phone=PHONE
 返回:{"sms": "Your verification code is 123456"}
5sim:
 GET https://5sim.net/v1/user/check/{order_id}
 Header: Authorization: Bearer KEY
 返回:{"sms": [{"text": "123456 is your code"}]}
sms-activate:
 GET https://api.sms-activate.org/stubs/handler_api.php?api_key=KEY&action=getStatus&id=ORDER_ID
 返回:STATUS_OK:123456

批量使用流程:

1. 在接码平台买一个印尼号(如 81234567890)
2. 用这个号注册 GoPay(设 PIN 为 123456)
3. 调用 /subscribe,传入这个号:
 curl -X POST http://localhost:8800/subscribe \
 -d '{"session_token": "eyJ...", "phone_number": "81234567890", "pin": "123456"}'
4. 编排器自动从接码平台拿到验证码,完成订阅
5. 换下一个号 + 下一个 access_token,重复

方案三:whatsapp 模式(WhatsApp 自动接收)

适合固定一个 GoPay 号长期使用。

原理:在服务器上登录 WhatsApp,自动监听 GoPay 发来的验证码消息。

设置:

  1. config.json 中 otp.mode 设为 "whatsapp"
  2. 启动 WhatsApp Relay 服务

首次配对步骤:

cd to_whatsapp
export WA_PAIRING_PHONE=6281234567890 # 你的手机号(含国家码62)
export WA_PROXY_URL=socks5://127.0.0.1:1080
export WA_GRPC_PORT=50056
node index.js

启动后终端会显示一个 8 位配对码(如 WN2XQNLB)。

在你的手机上操作:

  1. 打开 WhatsApp
  2. 点右上角三个点 -> 已关联设备
  3. 点"关联设备"
  4. 输入终端显示的 8 位配对码

配对成功后,服务会持续运行,自动接收验证码。

已知问题:WhatsApp的连结设备(非主设备)可能对金融类消息(如 GoPay 验证码)做屏蔽处理(MASK_LINKED_DEVICES),导致关联设备收不到。如果遇到这个问题,请改用 manual 或 sms_api 模式。


三种方案对比

manual sms_api whatsapp
全自动 需手动或ADB脚本 完全自动 完全自动
多号支持 支持 支持 仅单号
额外成本 接码平台费用
稳定性 取决于人/ADB 可能被屏蔽
适合场景 调试/少量 批量生产 固定号长期

生产部署(systemd 自启动)

让服务开机自动启动、崩溃自动重启:

# 创建服务文件
cat > /etc/systemd/system/plus-gopay-links.service << 'EOF'
[Unit]
Description=GoPay Payment Service
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/gopay-plus
ExecStart=/usr/bin/python3 plus_gopay_links/payment_server.py --config config.json --listen :50051
Restart=always
RestartSec=5
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
EOF
cat > /etc/systemd/system/gopay-orchestrator.service << 'EOF'
[Unit]
Description=GoPay Orchestrator
After=plus-gopay-links.service
[Service]
Type=simple
WorkingDirectory=/opt/gopay-plus
ExecStart=/usr/bin/python3 orchestrator.py
Restart=always
RestartSec=5
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
EOF
# 启用并启动
systemctl daemon-reload
systemctl enable plus-gopay-links gopay-orchestrator
systemctl start plus-gopay-links gopay-orchestrator
# 查看状态
systemctl status plus-gopay-links
systemctl status gopay-orchestrator
# 查看日志
journalctl -u gopay-orchestrator -f

常见问题

Q: 返回 otp_timeout(OTP 超时)

原因:90 秒内没收到验证码。

排查:

  • manual 模式:你是否在 90 秒内推送了 /otp?
  • sms_api 模式:接码平台 API 是否配置正确?手机号是否已激活?
  • whatsapp 模式:WhatsApp Relay 是否在运行?是否被 MASK_LINKED_DEVICES 屏蔽?

Q: 返回 start_gopay_failed

原因:access_token 无效或已过期。

解决:重新从 chatgpt.com/api/auth/session 获取新的 access_token。

Q: PIN 验证失败(465 错误)

原因:

  • PIN 不是 6 位数字
  • 短时间内多次输错 PIN,被 GoPay 临时锁定(冷却期 1 小时)

解决:确认 PIN 正确,等 1 小时后重试。

Q: Midtrans charge 被拒(fraud_status=deny)

原因:同一个 GoPay 号短时间内做了太多次 linking 操作,触发了 Midtrans 反欺诈。

解决:

  • 正常使用不会触发(一个号只订阅一次)
  • 如果是调试导致的,等几小时后自动恢复
  • 批量模式下用不同号,不会有这个问题

Q: 如何同时订阅多个账号?

可以并发发送多个 /subscribe 请求,每个传不同的 session_token 和 phone_number。编排器支持并发处理。

但注意:如果用 manual 模式,多个并发请求的 OTP 可能会混淆。建议批量场景使用 sms_api 模式。

Q: 代理有什么要求?

  • 必须是 SOCKS5 协议
  • 出口 IP 必须是日本 才有plus订阅
  • 不能是被 GoPay/Midtrans 封禁的 IP
  • 推荐自建代理或使用住宅代理

项目结构

gopay-plus/
|-- README.md # 本文件
|-- config.example.json # 配置模板(复制为 config.json 使用)
|-- requirements.txt # Python 依赖列表
|-- start.sh # 一键启动脚本
|-- orchestrator.py # 编排器(HTTP API + OTP 管理)
|-- otp_forwarder.py # ADB OTP 自动转发脚本
|-- .gitignore # Git 忽略规则
|-- plus_gopay_links/ # 支付核心模块
| |-- gopay.py # 15 步 GoPay 支付流程实现
| |-- payment_server.py # gRPC 服务端
| |-- requirements.txt # 模块依赖
| |-- proto/ # gRPC 协议定义
| | |-- payment.proto
| | +-- otp.proto
| |-- payment_pb2.py # 自动生成的 proto 代码
| |-- payment_pb2_grpc.py
| |-- otp_pb2.py
| +-- otp_pb2_grpc.py
+-- to_whatsapp/ # WhatsApp OTP 接收模块(可选)
 |-- index.js # WhatsApp 客户端主程序
 |-- package.json # Node.js 依赖
 |-- wa_relay.py # Node 进程管理
 +-- proto/
 +-- otp.proto

赞赏

如果本项目对你有帮助,欢迎赞赏支持:


免责声明

本项目仅供学习研究使用。使用者需自行承担风险,遵守相关服务条款。 不得违法openai的条款和相关法律法规,使用则默认用户知情,一切后果由用户个人承担,与作者无关。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Python 88.9%
  • JavaScript 8.9%
  • Shell 1.3%
  • Other 0.9%

AltStyle によって変換されたページ (->オリジナル) /