概述
测试 L402 API 分为两个层次:- 单元测试 / 集成测试 — 在不进行真实 Lightning 支付的情况下验证中间件逻辑
- 端到端测试 — 使用真实钱包和真实 sats 验证完整流程
单元测试——模拟 Provider
传入一个模拟的LightningProvider 以完全绕过 Lightning:
为测试生成有效的 preimage
Python——使用 pytest 和模拟 provider
测试重放保护
验证 preimage 无法被重复使用:CI 流水线
在 CI 中使用模拟 provider——无需 Lightning 节点或 API 密钥:使用真实 sats 进行端到端测试
完整支付流程测试(适用于预发布/Staging 环境):- 设置
priceSats: 1——每次测试运行费用约 $0.0008 - 使用 OpenNode 沙盒环境(
testMode: true)进行无真实资金的支付测试: - 或者使用您的 Blink 钱包——1 sat 的支付几乎免费
使用测试钱包进行自动化 E2E 测试
上线前检查清单
1
使用模拟 provider 通过单元测试
验证 402 → 支付 → 200 的完整流程。验证重放保护(第二次使用返回 401)。
2
测试 Token 过期逻辑
在模拟 macaroon 中设置
exp: Date.now() - 1——验证中间件是否返回 401。3
以 priceSats: 1 完成真实支付的完整 E2E 测试
使用真实钱包、真实支付,确认收到 200 OK。可在手机上使用 Wallet of Satoshi 或 Blink。
4
确认重放保护适配您的部署环境
单进程:默认内存适配器即可。多进程(Kubernetes、PM2 集群):请使用 Supabase 或 Redis 适配器。参见生产环境指南。