پرداخت کریپتو برای 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.
نصب
- در پنل فروشنده SnapEX Pay یک کلید API با دسترسیهای
invoices.readوinvoices.writeبسازید. - آرشیو را دانلود و از حالت فشرده خارج کنید، سپس در پوشه آن
cp .env.example .envرا اجرا کنید وSNAPEX_API_KEY،API_TOKEN،XUI_URL(همراه با مسیر پایه وب)،XUI_USERNAMEوXUI_PASSWORD،XUI_INBOUND_IDوXUI_SUB_URLرا پر کنید. - اجرا کنید:
docker compose up -d، سپسcurl http://localhost:8080/healthرا بررسی کنید. - سرویس را پشت HTTPS قرار دهید (nginx، Caddy، Traefik). در پنل یک endpoint وبهوک
https://<your service>/webhookاضافه کنید، رمز امضای آن را درSNAPEX_WEBHOOK_SECRETبگذارید و دوبارهdocker compose up -dرا اجرا کنید. - از ربات یا بکاند خود
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_URL | inbound برای کلاینتهای جدید (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٪ برای هر پرداخت، بدون هزینه ماهانه.