ربات 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 نگهداری میشوند.
نصب
- در پنل فروشنده SnapEX Pay یک کلید API با دسترسیهای
invoices.readوinvoices.writeبسازید. - آرشیو را دانلود و از حالت فشرده خارج کنید،
cp .env.example .envرا اجرا کنید و توکن ربات، کلید SnapEX Pay،PANEL_TYPE(marzban،3xui،remnawaveیاnone)، اطلاعات ورود پنل وPLANSرا تنظیم کنید. - اجرا کنید:
docker compose up -d --build، سپسdocker compose logs -f botرا دنبال کنید. - ربات روی پورت
8080گوش میدهد (/webhookو/health). آن را پشت یک reverse proxy با TLS مانند Caddy یا nginx قرار دهید. - در پنل یک 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_TYPE | marzban، 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٪ برای هر پرداخت، بدون هزینه ماهانه.