ZH
VPN 面板

3x-ui 加密货币支付

一个小型自托管服务,让您的 3x-ui 面板通过 SnapEX Pay 接收加密货币付款。您的 Telegram 机器人或网站向它请求结账链接,客户在 SnapEX Pay 页面用 USDT 付款,账单支付后,服务会向您的入站添加客户端或续期现有客户端,并返回订阅链接。3x-ui 本身没有计费功能,因此这是您的商店和面板之间的支付层。

下载模块

免费。版本 1.1.0。

功能

  • 每个订单都有自己的 SnapEX Pay 账单和 pay_url。客户使用 TRC20、ERC20 或 BEP20 上的 USDT 付款;当 SnapEX Pay 可以提供时,支付页面上也会出现其他币种。
  • 新用户名会在 XUI_INBOUND_ID 上成为新客户端。现有用户名会被续期:到期时间向后延长(如果已到期则从现在开始计算;没有到期时间的客户端保持不限期),客户端重新启用,有配额的套餐会重置流量。UUID 和 subId 保持不变,客户的配置可以继续使用。
  • 支持 3x-ui 2.x 和 3.x:面板有新的 /panel/api/clients API 时使用它,否则使用旧的 inbounds/addClient API。
  • 安全的 Webhook:HMAC-SHA256 签名及 5 分钟窗口,账单状态始终从 SnapEX Pay API 重新读取,每张账单只开通一次。
  • 套餐(天数、USD 价格、流量配额)在一个环境变量中设置。单个容器:FastAPI 和 SQLite。

安装

  1. 在 SnapEX Pay 商户后台创建一个具有 invoices.read 和 invoices.write 权限的 API 密钥。
  2. 下载并解压压缩包,在其目录中运行 cp .env.example .env,填写 SNAPEX_API_KEY、API_TOKEN、XUI_URL(含 Web 基础路径)、XUI_USERNAME 和 XUI_PASSWORD、XUI_INBOUND_ID 以及 XUI_SUB_URL。
  3. 启动:docker compose up -d,然后检查 curl http://localhost:8080/health。
  4. 将服务置于 HTTPS(nginx、Caddy、Traefik)之后。在后台 → Developers 将 Webhook URL 设为 https://<your service>/webhook,将 whsec_… 密钥(仅在首次保存 URL 时显示一次)填入 SNAPEX_WEBHOOK_SECRET,再次运行 docker compose up -d。
  5. 从您的机器人或后端调用 POST /v1/checkout,带上 Authorization: Bearer <API_TOKEN>,把 pay_url 发给客户,并通过 GET /v1/orders/{invoice_id} 获取订阅链接。

设置

SNAPEX_API_KEY, SNAPEX_WEBHOOK_SECRET商户 API 密钥(invoices.read、invoices.write)和 Webhook 签名密钥(whsec_…)。
SNAPEX_ENVIRONMENT, SNAPEX_FEE_ONlive 或 test 账单;谁支付服务费 — merchant 或 customer。
API_TOKEN用于 /v1/checkout 和 /v1/orders 的 Bearer 令牌。
XUI_URL包含 Web 基础路径的面板 URL,例如 https://xui.example.com:2053/secretpath。
XUI_API_TOKEN仅限 3x-ui 3.x:用面板 API 令牌代替用户名和密码(适用于启用两步登录的面板)。
XUI_INBOUND_ID, XUI_SUB_URL新客户端所在的入站(VLESS、VMess、Trojan、Shadowsocks 或 Hysteria)和订阅前缀。
PLANS逗号分隔的 id:days:usd:traffic_bytes,0 字节 = 不限。
SNAPEX_PARTNER_ID可选:为您配置此模块的集成商的 Partner ID(SnapEX Pay 推荐计划)。如果是您自己安装,请留空。

常见问题

支持哪些 3x-ui 版本?

3x-ui 2.x 和 3.x:新的 /panel/api/clients API 和旧的 inbounds/addClient API 都支持。

客户续费时会怎样?

再次发送相同的用户名。客户端保留其 UUID 和 subId,到期时间向后延长,客户端重新启用,有配额的套餐会重置流量。

我的面板启用了两步登录,可以使用吗?

在 3x-ui 3.x 上可以:设置 XUI_API_TOKEN(面板 API 令牌)代替用户名和密码。

一笔付款会被重复开通吗?

不会。即使 Webhook 到达两次或两份同时到达,每张账单也只开通一次。

有现成的 Telegram 机器人吗?

有,一个独立的 SnapEX Pay Telegram 机器人,适用于 Marzban、3x-ui 和 Remnawave。如果您已有自己的机器人或网站,则适合使用本服务。

准备好接收加密货币了吗?

创建商户账户,获取 API 密钥并连接模块。每笔支付 1%,无月费。