مدفوعات العملات المشفرة لـ Remnawave
اقبل USDT في لوحة Remnawave VPN الخاصة بك. تُنشئ هذه الخدمة الصغيرة فاتورة SnapEX Pay لباقة، وتوجّه عميلك إلى صفحة الدفع المستضافة. وعندما يؤكد SnapEX Pay الدفعة، تُنشئ مستخدم Remnawave، أو تُمدّد اشتراك مستخدم حالي، وتعطيك رابط الاشتراك. تعمل بجوار لوحتك في Docker، ويتحكم فيها الخادم الخلفي لمتجرك أو بوت Telegram عبر HTTP API بنقطتَي نهاية تتطلبان المصادقة.
مجانًا. الإصدار 1.1.0.
ماذا تفعل الوحدة
- صفحة دفع يستضيفها SnapEX Pay: USDT على TRON (TRC20) أو Ethereum (ERC20) أو BNB Chain (BEP20)؛ وتظهر عملات أخرى عندما يتوفر مسار تحويل لهذا المبلغ.
- بعد الدفع تُنشئ مستخدم Remnawave (ACTIVE، مع تاريخ انتهاء وحد للترافيك، ومعرّف Telegram اختياريًا، وinternal squads) أو تُمدّد اشتراك مستخدم حالي. عند التجديد تُضاف أيام الباقة إلى الأبعد من الاثنين: الآن أو تاريخ الانتهاء الحالي.
- تُتحقَّق إشعارات Webhook بـ HMAC-SHA256 مع نافذة مدتها 5 دقائق؛ ثم تُقرأ حالة الفاتورة من API SnapEX Pay، ولا يُجهَّز المستخدم إلا بفاتورة مدفوعة.
- آمن من التكرار: إذا وصل إشعار Webhook نفسه مرتين، حتى في اللحظة نفسها، يُجهَّز المستخدم مرة واحدة فقط.
- الباقات في متغير بيئة واحد؛ والبيانات في ملف SQLite واحد، دون قاعدة بيانات خارجية.
التثبيت
- في Remnawave افتح Remnawave Settings → API Tokens وأنشئ رمزًا (لا تستخدم JWT تسجيل دخول المشرف — فاللوحة ترفضه في استدعاءات API). انسخ UUID الخاصة بالـ internal squads التي يجب أن يحصل عليها المستخدمون الجدد.
- في لوحة تحكم التاجر في SnapEX Pay أنشئ مفتاح API بالصلاحيتين
invoices.readوinvoices.write. - نزّل الأرشيف وفُكّ ضغطه، ونفّذ
cp .env.example .envواضبطSNAPEX_API_KEYوREMNAWAVE_URLوREMNAWAVE_TOKENوREMNAWAVE_SQUADSوAPI_TOKENعشوائيًا وطويلًا. - شغّل الخدمة:
docker compose up -d، وتحقّق عبرcurl -s http://127.0.0.1:8080/health، ثم ضعها خلف الوكيل العكسي الذي يدعم HTTPS لديك. - في لوحة التحكم ← للمطورين اضبط عنوان Webhook على
https://<your service>/webhook، وضع السرwhsec_…(يظهر مرة واحدة فقط، عند حفظ العنوان أول مرة) فيSNAPEX_WEBHOOK_SECRET، ثم أعد التشغيل. - من الخادم الخلفي أو البوت استدعِ
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) وسر توقيع Webhook (whsec_…). |
|---|---|
| SNAPEX_ENVIRONMENT, SNAPEX_FEE_ON | live أو test (تُؤكَّد الفواتير التجريبية دون أموال حقيقية)؛ ومن يدفع عمولة الخدمة — merchant أو customer. |
| REMNAWAVE_URL, REMNAWAVE_TOKEN | عنوان اللوحة (أو http://remnawave:3000 على شبكة Docker مشتركة) ورمز API الخاص بـ Remnawave. |
| REMNAWAVE_SQUADS | معرّفات UUID للـ internal squads الخاصة بالمستخدمين الجدد. المستخدم الذي لا squad له لا inbounds له، فيكون اشتراكه فارغًا. |
| API_TOKEN | رمز Bearer الذي يرسله متجرك أو البوت إلى /v1/checkout و/v1/orders/…. |
| PLANS | قيم id:days:usd:traffic_bytes مفصولة بفواصل؛ و0 بايت = بلا حدود. |
| SNAPEX_PARTNER_ID | اختياري: Partner ID للمُدمِج الذي أعدّ الوحدة (برنامج الإحالة في SnapEX Pay). اتركه فارغًا إذا أعددتها بنفسك. |
أسئلة
ما إصدارات Remnawave المدعومة؟
Remnawave بإصدار 2.2 أو أحدث.
لماذا اشتراك المستخدم الجديد فارغ؟
المستخدم الذي لا internal squad له لا inbounds له. ضع UUID الخاصة بالـ squads للمستخدمين الجدد في REMNAWAVE_SQUADS؛ أما المستخدمون الحاليون فيحتفظون بـ squads الخاصة بهم.
كيف يعمل التجديد؟
الدفع لاسم مستخدم موجود يضيف أيام الباقة إلى الأبعد من الاثنين: الآن أو تاريخ انتهاء المستخدم الحالي. ويُضبط حد الترافيك على قيمة الباقة الجديدة.
هل يمكن لدفعة واحدة أن تُنشئ المستخدم مرتين؟
لا. حتى لو وصل إشعار Webhook نفسه مرتين في اللحظة نفسها، يُجهَّز المستخدم مرة واحدة فقط.
هل يوجد بوت Telegram جاهز؟
نعم، بوت Telegram مستقل من SnapEX Pay لـ Marzban و3x-ui وRemnawave. أما هذه الخدمة فتناسبك إذا كان لديك بوت أو متجر خاص بك بالفعل.
هل أنت مستعد لقبول العملات المشفرة؟
أنشئ حساب تاجر، واحصل على مفتاح API، ثم اربط الوحدة. عمولة 1% على كل دفعة، دون رسوم شهرية.