Skip to main content

Managed → Soberano (رسوم 0%، حضانة كاملة)

بدأت بـ ManagedProvider لأنه أسرع طريقة للتشغيل. عندما تكون مستعدًا للحضانة الكاملة ورسوم 0%، يتمثل الترحيل في سطر واحد.
1

إعداد مزود Lightning الخاص بك

اختر مزود soberano. Blink مجاني، بدون KYC، وإعداد فوري.
# Blink: create account → API Keys → copy key + wallet ID
BLINK_API_KEY=blink_xxxxxxxxxxxxxxxxxxxxxxxx
BLINK_WALLET_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
2

تبديل المزود — سطر واحد

// Before
import { ManagedProvider } from 'l402-kit';
const lightning = ManagedProvider.fromAddress('you@yourdomain.com');

// After
import { BlinkProvider } from 'l402-kit';
const lightning = new BlinkProvider(
  process.env.BLINK_API_KEY!,
  process.env.BLINK_WALLET_ID!,
);
# Before
from l402kit import ManagedProvider
lightning = ManagedProvider.from_address("you@yourdomain.com")

# After
from l402kit.providers.blink import BlinkProvider
lightning = BlinkProvider(
    api_key=os.environ["BLINK_API_KEY"],
    wallet_id=os.environ["BLINK_WALLET_ID"],
)
كل شيء آخر — إعداد الوسيط، التحقق من الرمز، كود نقطة النهاية — يبقى كما هو تمامًا.
3

النشر

الرموز الصادرة عن المزود المُدار تستمر في العمل بعد الترحيل. التحقق هو تشفير بحت (SHA256(preimage) == paymentHash) — ولا يعتمد على أي مزود أنشأ الفاتورة.لا توجد نافذة ترحيل، ولا توقف، ولا قاعدة بيانات تحتاج إلى تحديث.
الرموز المدفوعة مسبقًا الصادرة تحت ManagedProvider تبقى صالحة بعد تبديل المزودين. يحتوي macaroon فقط على تجزئة وتاريخ انتهاء صلاحية — لا توجد بيانات خاصة بالمزود.

التبديل بين مزودي soberano

نفس النمط — قم بتبديل نسخة المزود، ولا شيء آخر يتغير.
// Blink → LNbits
import { LNbitsProvider } from 'l402-kit';
const lightning = new LNbitsProvider(
  process.env.LNBITS_KEY!,
  process.env.LNBITS_URL ?? 'https://legend.lnbits.com',
);

// Blink → OpenNode
import { OpenNodeProvider } from 'l402-kit';
const lightning = new OpenNodeProvider(process.env.OPENNODE_KEY!, false);

v1.x → v1.8 (الإصدار الحالي)

لا توجد تغييرات جذرية. SDK مضاف — مزودون جدد، أدوات وكيل جديدة، محولات إعادة تشغيل جديدة. قم بالترقية باستخدام:
npm install l402-kit@latest
pip install --upgrade l402kit
cargo update l402kit
go get github.com/shinydapps/l402-kit/go@latest
إذا حددت إصدارًا معينًا، تحقق من سجل التغييرات لمعرفة ما هو جديد.

ترحيل الإطار

Express → Fastify

// Express
app.get('/api', l402({ priceSats: 10, lightning }), handler);

// Fastify
import { l402Fastify } from 'l402-kit/fastify';

fastify.get('/api', {
  preHandler: l402Fastify({ priceSats: 10, lightning }),
}, handler);

Express → Hono (Cloudflare Workers)

import { Hono } from 'hono';
import { l402Hono } from 'l402-kit/hono';

const app = new Hono();
app.use('/api/*', l402Hono({ priceSats: 10, lightning }));
app.get('/api/data', (c) => c.json({ data: 'paid' }));

Flask → FastAPI

# Flask
from l402kit.flask import l402_required

@app.route('/api')
@l402_required(price_sats=10, lightning=provider)
def handler():
    return jsonify({'data': 'paid'})

# FastAPI
from l402kit import l402_required

@app.get('/api')
@l402_required(price_sats=10, lightning=provider)
async def handler():
    return {'data': 'paid'}

ترحيل مخزن إعادة التشغيل

الذاكرة المؤقتة → Supabase

قم بتعيين متغيرات البيئة — يكتشف الوسيط ذلك تلقائيًا ويتبدّل:
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_ANON_KEY=your_anon_key
الرموز الجارية تستمر في العمل. يبدأ مخزن Supabase في التسجيل من اللحظة التي يصبح فيها نشطًا — لا توجد بيانات تاريخية تحتاج إلى ترحيل.

الذاكرة المؤقتة → Redis

import { Redis } from 'ioredis';
import { RedisReplayAdapter } from 'l402-kit';

const redis = new Redis(process.env.REDIS_URL!);

app.get('/api', l402({
  priceSats: 10,
  lightning,
  replayAdapter: new RedisReplayAdapter(redis),
}), handler);

المزودون

جميع خيارات المزودين وإعداداتهم

دليل الإنتاج

قائمة مراجعة النشر