Skip to main content

概述

测试 L402 API 分为两个层次:
  1. 单元测试 / 集成测试 — 在不进行真实 Lightning 支付的情况下验证中间件逻辑
  2. 端到端测试 — 使用真实钱包和真实 sats 验证完整流程

单元测试——模拟 Provider

传入一个模拟的 LightningProvider 以完全绕过 Lightning:

为测试生成有效的 preimage


Python——使用 pytest 和模拟 provider


测试重放保护

验证 preimage 无法被重复使用:

CI 流水线

在 CI 中使用模拟 provider——无需 Lightning 节点或 API 密钥:
通过环境变量来选择 provider:

使用真实 sats 进行端到端测试

完整支付流程测试(适用于预发布/Staging 环境):
  1. 设置 priceSats: 1——每次测试运行费用约 $0.0008
  2. 使用 OpenNode 沙盒环境testMode: true)进行无真实资金的支付测试:
  3. 或者使用您的 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 适配器。参见生产环境指南