AR
لوحات VPN

بوت Telegram لبيع VPN مع مدفوعات العملات المشفرة

بوت Telegram تستضيفه بنفسك يبيع اشتراكات VPN بالعملات المشفرة. يختار العميل باقة في المحادثة ويدفع على صفحة SnapEX Pay (USDT على TRC20 أو ERC20 أو BEP20، إضافةً إلى عملات أخرى حين يتيحها SnapEX لهذا المبلغ). وبعد تأكيد الدفعة، يُنشئ البوت المستخدم أو يُمدّد اشتراكه في لوحة Marzban أو 3x-ui أو Remnawave لديك، ويرسل رابط الاشتراك إلى المحادثة نفسها.

تنزيل الوحدة

مجانًا. الإصدار 1.1.0.

ماذا تفعل الوحدة

  • لا محفظة ولا عقدة بلوكتشين تحتاج إلى تشغيلها: تصل الأموال إلى رصيد التاجر الخاص بك في SnapEX Pay.
  • /start يعرض باقاتك على شكل أزرار؛ وكل ضغطة تُنشئ فاتورة SnapEX Pay ويردّ البوت بزر Pay.
  • يدعم Marzban و3x-ui (كلًّا من API الخاص بالـ clients في ⁦3.1+⁩ وAPI الأقدم الخاص بالـ inbounds) وRemnawave ⁦2.x⁩ و⁦3.x⁩. ومع PANEL_TYPE=none يكتفي البوت بتأكيد الدفعة، وتمنح أنت الوصول بنفسك.
  • إشعار Webhook موقّع (HMAC-SHA256، مع نافذة مدتها 5 دقائق)؛ تُقرأ الفاتورة من جديد من API SnapEX Pay ولا تُنفَّذ إلا إذا كانت مدفوعة ومطابقة لطلب أنشأه البوت. عمليات التسليم المكررة تُنفِّذ الفاتورة مرة واحدة.
  • التجديد: يُمدَّد اشتراك العميل العائد (حساب Telegram نفسه) من تاريخ الانتهاء الحالي، أو من الآن إذا كان قد مضى؛ والباقة ذات حد الترافيك تبدأ حصة جديدة.
  • حاوية واحدة تعمل بـ long polling، فلا يلزم أن يكون متاحًا من الخارج إلا منفذ Webhook. تُحفظ الطلبات في 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). ضعه خلف وكيل عكسي يدعم TLS مثل Caddy أو nginx.
  5. في لوحة التحكم ← للمطورين اضبط عنوان Webhook على 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) وسر Webhook (whsec_…).
SNAPEX_ENVIRONMENT, SNAPEX_FEE_ONفواتير live أو test؛ ومن يدفع عمولة SnapEX — merchant أو customer.
PANEL_TYPEmarzban أو 3xui أو remnawave أو none، إضافةً إلى بيانات دخول تلك اللوحة.
PLANSقيم id:days:price_usd:traffic_bytes مفصولة بفواصل؛ و0 بايت = بلا حدود.
SNAPEX_PARTNER_IDاختياري: Partner ID للمُدمِج الذي أعدّ الوحدة (برنامج الإحالة في SnapEX Pay). اتركه فارغًا إذا أعددتها بنفسك.

دليل الإعداد خطوة بخطوة ←

أسئلة

ما اللوحات التي يدعمها البوت؟

Marzban و3x-ui (MHSanaei، بكلا إصدارَي API) وRemnawave ⁦2.x⁩ و⁦3.x⁩. ومع PANEL_TYPE=none يكتفي بقبول المدفوعات.

كيف يُربط العميل بمستخدم VPN؟

اسم المستخدم في اللوحة هو tg<telegram_id>، فيقابل كلَّ حساب Telegram مستخدمُ VPN واحد بالضبط، والدفعة المتكررة تُمدّد اشتراكه.

ماذا لو غيّرت الأسعار لاحقًا؟

تحتفظ الطلبات بنسخة من الباقة، لذا فتعديل PLANS لا يغيّر الطلبات المدفوعة بالفعل.

هل يمكن تنفيذ دفعة واحدة مرتين؟

لا. عمليات تسليم Webhook المكررة أو المتزامنة تُنفِّذ الفاتورة مرة واحدة، وكل ضغطة زر تحصل على فاتورة خاصة بها.

هل يحتاج الخادم إلى منفذ مفتوح لـ Telegram؟

لا. يستخدم البوت long polling؛ ولا يلزم أن يكون متاحًا لـ SnapEX Pay إلا منفذ Webhook خلف HTTPS.

هل أنت مستعد لقبول العملات المشفرة؟

أنشئ حساب تاجر، واحصل على مفتاح API، ثم اربط الوحدة. عمولة ⁦1%⁩ على كل دفعة، دون رسوم شهرية.