支付层
l402-kit 是一个主权中间件,只需 3 行代码即可为任意 HTTP 端点添加 Bitcoin Lightning 付费墙。您使用自己的 Lightning 提供商——资金直接进入您的钱包,无需任何中间方。协议:L402
L402 是一个开放标准,通过原生支付握手对 HTTP/1.1 进行扩展:paymentHash 绑定的能力令牌。preimage 是 Lightning 节点在支付结算时释放的密码学密钥。服务器验证:
发票创建流程
支付验证流程
payment_hash 日志记录)异步执行,不会阻塞请求。
Macaroon 格式
l402-kit 使用轻量级自定义 macaroon,而非 libmacaroon。令牌是一个经过base64url 编码的 JSON 对象:
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) |