FA
پنل‌های VPN

ربات VPN تلگرام با پرداخت کریپتو

یک ربات تلگرام روی سرور خودتان که اشتراک VPN را با کریپتو می‌فروشد. مشتری در چت یک پلن انتخاب می‌کند و در صفحه SnapEX Pay پرداخت می‌کند (USDT در TRC20، ERC20 یا BEP20، به‌علاوه کوین‌های دیگر وقتی SnapEX برای آن مبلغ ارائه می‌دهد). پس از تأیید پرداخت، ربات کاربر را در پنل Marzban، 3x-ui یا Remnawave شما می‌سازد یا تمدید می‌کند و لینک اشتراک را در همان چت می‌فرستد.

دانلود ماژول

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

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

  • بدون کیف پول یا نود بلاکچین: پول به موجودی فروشنده SnapEX Pay شما می‌رود.
  • /start پلن‌های شما را به‌صورت دکمه نشان می‌دهد؛ هر لمس یک فاکتور SnapEX Pay می‌سازد و با دکمه Pay پاسخ می‌دهد.
  • از Marzban، 3x-ui (هم API کلاینت‌های 3.1+ و هم API قدیمی inbound) و Remnawave 2.x و 3.x پشتیبانی می‌کند. با PANEL_TYPE=none ربات فقط پرداخت را تأیید می‌کند و دسترسی را خودتان می‌دهید.
  • وب‌هوک امضاشده (HMAC-SHA256، بازه ۵ دقیقه)؛ فاکتور دوباره از API SnapEX Pay خوانده می‌شود و فقط وقتی پرداخت‌شده و متعلق به سفارش ربات باشد اعمال می‌شود. تحویل‌های تکراری، فاکتور را یک بار اعمال می‌کنند.
  • تمدید: مشتری بازگشتی (همان حساب تلگرام) از تاریخ انقضای فعلی تمدید می‌شود؛ پلن با محدودیت ترافیک سهمیه تازه‌ای شروع می‌کند.
  • یک کانتینر با long polling، پس فقط پورت وب‌هوک باید در دسترس باشد. سفارش‌ها همراه با نسخه‌ای از پلن در SQLite نگهداری می‌شوند.

نصب

  1. در پنل فروشنده SnapEX Pay یک کلید API با دسترسی‌های invoices.read و invoices.write بسازید.
  2. آرشیو را دانلود و از حالت فشرده خارج کنید، cp .env.example .env را اجرا کنید و توکن ربات، کلید SnapEX Pay، PANEL_TYPE (marzban، 3xui، remnawave یا none)، اطلاعات ورود پنل و PLANS را تنظیم کنید.
  3. اجرا کنید: docker compose up -d --build، سپس docker compose logs -f bot را دنبال کنید.
  4. ربات روی پورت 8080 گوش می‌دهد (/webhook و /health). آن را پشت یک reverse proxy با TLS مانند Caddy یا nginx قرار دهید.
  5. در پنل یک endpoint وب‌هوک https://<your bot host>/webhook اضافه کنید، رمز whsec_… آن را در SNAPEX_WEBHOOK_SECRET بگذارید و ری‌استارت کنید. به ربات /start بفرستید و یک پلن را با SNAPEX_ENVIRONMENT=test تست کنید.

تنظیمات

TELEGRAM_BOT_TOKEN, SHOP_NAMEتوکن ربات از @BotFather؛ نام فروشگاه در /start و در توضیح فاکتور.
SNAPEX_API_KEY, SNAPEX_WEBHOOK_SECRETکلید API فروشنده (invoices.read، invoices.write) و رمز وب‌هوک (whsec_…).
SNAPEX_ENVIRONMENT, SNAPEX_FEE_ONفاکتورهای live یا test؛ چه کسی کارمزد SnapEX را می‌پردازد — merchant یا customer.
PANEL_TYPEmarzban، 3xui، remnawave یا none، به‌علاوه اطلاعات ورود همان پنل.
PLANSمقادیر جداشده با کاما به شکل id:days:price_usd:traffic_bytes؛ مقدار 0 بایت = نامحدود.

سؤالات

ربات از کدام پنل‌ها پشتیبانی می‌کند؟

Marzban، 3x-ui (MHSanaei، هر دو نسخه API) و Remnawave 2.x و 3.x. با PANEL_TYPE=none فقط پرداخت می‌گیرد.

مشتری چگونه به کاربر VPN وصل می‌شود؟

نام کاربری در پنل tg<telegram_id> است، پس هر حساب تلگرام دقیقاً به یک کاربر VPN وصل می‌شود و پرداخت دوباره آن را تمدید می‌کند.

اگر بعداً قیمت‌ها را عوض کنم چه؟

سفارش‌ها نسخه‌ای از پلن را نگه می‌دارند، پس ویرایش PLANS سفارش‌های پرداخت‌شده را تغییر نمی‌دهد.

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

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

آیا سرور برای تلگرام به پورت باز نیاز دارد؟

خیر. ربات از long polling استفاده می‌کند؛ فقط پورت وب‌هوک پشت HTTPS باید برای SnapEX Pay در دسترس باشد.

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

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