FA
پنل‌های VPN

پرداخت کریپتو برای 3x-ui

یک سرویس کوچک روی سرور خودتان که به پنل 3x-ui اجازه می‌دهد از طریق SnapEX Pay پرداخت کریپتو بگیرد. ربات تلگرام یا وب‌سایت شما از آن لینک پرداخت می‌گیرد، مشتری در صفحه SnapEX Pay با USDT پرداخت می‌کند و پس از پرداخت فاکتور، سرویس یک کلاینت به inbound شما اضافه می‌کند یا کلاینت موجود را تمدید می‌کند و لینک اشتراک را برمی‌گرداند. خود 3x-ui بیلینگ ندارد، پس این سرویس لایه پرداخت بین فروشگاه و پنل است.

دانلود ماژول

رایگان. نسخه 1.0.0.

چه کاری انجام می‌دهد

  • هر سفارش فاکتور SnapEX Pay و pay_url خودش را دارد. مشتریان با USDT در TRC20، ERC20 یا BEP20 پرداخت می‌کنند؛ وقتی SnapEX Pay بتواند، کوین‌های دیگر هم در صفحه پرداخت نمایش داده می‌شوند.
  • نام کاربری جدید به کلاینت جدید روی XUI_INBOUND_ID تبدیل می‌شود. نام کاربری موجود تمدید می‌شود: تاریخ انقضا جلو می‌رود (یا اگر تمام شده، از همین حالا حساب می‌شود)، کلاینت دوباره فعال می‌شود و برای پلن‌های حجمی ترافیک صفر می‌شود. UUID و subId تغییر نمی‌کنند، پس کانفیگ مشتری کار می‌کند.
  • با 3x-ui 2.x و 3.x کار می‌کند: با 3x-ui 2.6.0، 2.9.4 و 3.9.0 و inboundهای VLESS و Trojan تست شده است.
  • وب‌هوک‌های امن: امضای HMAC-SHA256 با بازه ۵ دقیقه، وضعیت فاکتور همیشه دوباره از API SnapEX Pay خوانده می‌شود و هر فاکتور فقط یک بار اعمال می‌شود.
  • پلن‌ها (روز، قیمت دلاری، سهمیه ترافیک) در یک متغیر محیطی. یک کانتینر: FastAPI و SQLite.

نصب

  1. در پنل فروشنده SnapEX Pay یک کلید API با دسترسی‌های invoices.read و invoices.write بسازید.
  2. آرشیو را دانلود و از حالت فشرده خارج کنید، سپس در پوشه آن cp .env.example .env را اجرا کنید و SNAPEX_API_KEY، API_TOKEN، XUI_URL (همراه با مسیر پایه وب)، 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). در پنل یک endpoint وب‌هوک https://<your service>/webhook اضافه کنید، رمز امضای آن را در 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) و رمز امضای وب‌هوک (whsec_…).
SNAPEX_ENVIRONMENT, SNAPEX_FEE_ONفاکتورهای live یا test؛ چه کسی کارمزد سرویس را می‌پردازد — merchant یا customer.
API_TOKENتوکن Bearer برای /v1/checkout و /v1/orders.
XUI_URLآدرس پنل همراه با مسیر پایه وب، مثلاً https://xui.example.com:2053/secretpath.
XUI_API_TOKENفقط 3x-ui 3.x: توکن API پنل به‌جای نام کاربری و رمز (برای پنل‌هایی با ورود دومرحله‌ای).
XUI_INBOUND_ID, XUI_SUB_URLinbound برای کلاینت‌های جدید (VLESS، VMess، Trojan، Shadowsocks یا Hysteria) و پیشوند اشتراک.
PLANSمقادیر جداشده با کاما به شکل id:days:usd:traffic_bytes، مقدار 0 بایت = نامحدود.

سؤالات

کدام نسخه‌های 3x-ui پشتیبانی می‌شوند؟

3x-ui 2.x و 3.x: هم API جدید /panel/api/clients و هم API قدیمی inbounds/addClient. با 2.6.0، 2.9.4 و 3.9.0 تست شده است.

وقتی مشتری تمدید می‌کند چه می‌شود؟

همان نام کاربری را دوباره بفرستید. کلاینت UUID و subId خود را حفظ می‌کند، تاریخ انقضا جلو می‌رود، کلاینت دوباره فعال می‌شود و برای پلن‌های حجمی ترافیک صفر می‌شود.

پنل من ورود دومرحله‌ای دارد. کار می‌کند؟

در 3x-ui 3.x، بله: به‌جای نام کاربری و رمز، XUI_API_TOKEN (توکن API پنل با دسترسی ادمین) را تنظیم کنید.

آیا یک پرداخت می‌تواند دو بار اعمال شود؟

خیر. هر فاکتور فقط یک بار اعمال می‌شود، حتی اگر وب‌هوک دو بار برسد یا دو نسخه هم‌زمان برسند.

ربات تلگرام آماده وجود دارد؟

بله، یک ربات تلگرام جداگانه SnapEX Pay برای Marzban، 3x-ui و Remnawave. این سرویس زمانی مناسب است که ربات یا سایت خودتان را دارید.

آماده دریافت کریپتو هستید؟

حساب فروشنده بسازید، کلید API بگیرید و ماژول را وصل کنید. 1٪ برای هر پرداخت، بدون هزینه ماهانه.