طبقة الدفع
l402-kit هو وسيط مستقل يضيف جدار دفع Bitcoin Lightning إلى أي نقطة نهاية HTTP في 3 أسطر من الكود. تحضر مزود Lightning الخاص بك — تذهب الأموال مباشرةً إلى محفظتك، دون وسيط.البروتوكول: L402
L402 هو معيار مفتوح يوسّع HTTP/1.1 بمصافحة دفع أصلية:paymentHash الخاص بالفاتورة. preimage هو السر التشفيري الذي يُصدره عقدة Lightning عند اكتمال الدفع. يتحقق الخادم من:
تدفق إنشاء الفاتورة
تدفق التحقق من الدفع
payment_hash في Supabase) بشكل غير متزامن ولا تعيق الطلب.
صيغة Macaroon
يستخدم l402-kit macaroon مخصصًا خفيف الوزن — وليس libmacaroon. الرمز هو كائن JSON مُرمَّز بـbase64url:
Authorization هي:
نموذج الرسوم
| الوضع | الرسوم | الإعداد |
|---|---|---|
| المستقل (أي مزود) | 0% — تحتفظ بـ 100% | أحضر بيانات اعتماد مزودك الخاص |
المُدار (ManagedProvider) | 0.3% لصالح l402kit.com | لا حاجة لعقدة Lightning — يعمل فورًا |
تخزين البيانات (اختياري — Supabase)
عيّنSUPABASE_URL + SUPABASE_ANON_KEY لتسجيل المدفوعات تلقائيًا:
payment_hash بدلًا من preimage؟ الـ payment_hash مُضمَّن بالفعل في كل فاتورة BOLT11 — وهو عام بطبيعته. فقط الـ preimage هو السر. تخزين الهاش يوفر حماية من إعادة التشغيل دون أي تعرض إضافي.
مزودو Lightning
l402-kit لا يرتبط بمزود محدد. أي واجهة خلفية تُنفّذLightningProvider تعمل:
| المزود | ملاحظات |
|---|---|
| Alby Hub | ذاتي الحضانة، 0% رسوم |
| Blink | حضانة مجانية، لا KYC للمبالغ الصغيرة |
| BTCPay Server | مستضاف ذاتيًا، استقلالية كاملة |
| OpenNode | حضانة مُدارة، لا إعداد مطلوب |
| LNbits | مستضاف ذاتيًا أو سحابيًا |
ضمانات الأمان
| التهديد | وسيلة التخفيف |
|---|---|
| هجوم إعادة التشغيل | يُعلَّم الـ preimage كمستخدم بعد أول تحقق — في الذاكرة أو محوّل Redis |
| preimage مزيف | SHA256(preimage) === paymentHash غير قابل للتزوير تشفيريًا |
| انتهاء صلاحية الرمز | يتضمن Macaroon طابع زمني exp — يُتحقق منه في كل طلب |
| انتحال Webhook | يُتحقق من HMAC-SHA256(secret, body) قبل المعالجة |