x402 集成¶
LedgerFlow 被设计为 x402 支付协议的纯扩展。它在不改变任何 x402 语义的情况下添加授权。
黄金法则¶
商户服务器只说 x402。 LedgerFlow 数据严格作为 x402 扩展传输。 结算轨道细节保留在 Facilitator 内部。
x402 职责边界¶
x402 处理什么¶
- 支付挑战和响应流程
- 传输头部和负载结构
- 支付验证和结算合约
- 商户-代理互操作接口
LedgerFlow 处理什么¶
- 授权令格式定义
- 授权证明格式
- 签名身份和授权令签名验证
- 对 x402 报价和请求上下文的授权约束
- 可缓存的授权令摘要和本地重放保护
- 面向 x402 中间件的规范化授权决策
Facilitator 处理什么¶
- 将 x402 支付要求映射到实际结算轨道
- 与区块链、交易所、托管人或传统网关交互
- 支付验证和结算执行
- 向商户返回规范化 x402 结算结果
扩展键¶
LedgerFlow 数据位于 x402 扩展命名空间下:
这是 LedgerFlow 接触 x402 的唯一接口。核心的 PaymentRequired、PaymentPayload 和 HTTP 头部保持标准 x402。
挑战扩展¶
当商户返回 402 Payment Required 时,它在 x402 响应体中包含 LedgerFlow 挑战扩展。
{
"extensions": {
"ledgerflow": {
"version": "lfx402/v1",
"challenge_id": "01HV7W8M7BX3Q6P0WJ7T5QK1V2",
"proof_binding": "accepted+request",
"warrant_transport": "inline_or_digest_ref",
"required_subject_kinds": ["signer", "payment_subject"],
"nonce_bytes": 16
}
}
}
这不改变 x402 语义。它告诉客户端如何满足额外的授权要求。
响应扩展¶
当代理发送支付响应时,它保持标准 x402 负载,并在同一扩展键下添加 LedgerFlow 数据。
{
"accepted": { "...": "标准 x402 接受的支付要求" },
"payload": { "...": "标准 x402 支付负载" },
"extensions": {
"ledgerflow": {
"version": "lfx402/v1",
"challenge_id": "01HV7W8M7BX3Q6P0WJ7T5QK1V2",
"warrant": {
"encoding": "lfw1+cbor",
"digest": "sha256:8a5a...",
"inline_b64": "base64url..."
},
"proof": {
"encoding": "lfpop1",
"created_at_ms": 1774502400123,
"nonce_b64": "tR4Q7Y3qZ9GxwY6l9cYkQQ==",
"request_hash": "sha256:5d2d...",
"accepted_hash": "sha256:f321...",
"signature": {
"alg": "ed25519",
"value_b64": "..."
}
},
"subject": {
"signer": {
"alg": "ed25519",
"key_b64": "..."
},
"payment_subject": {
"kind": "facilitator_account",
"value": "binance:uid:12345678"
}
}
}
}
}
验证流程¶
1. 商户收到带有 x402 PaymentRequired 响应的请求
2. 商户 x402 中间件提取 extensions["ledgerflow"]
3. LedgerFlow 验证器:
a. 验证授权令签名
b. 验证证明签名
c. 检查授权令有效期
d. 检查受众范围
e. 对照请求上下文检查所有约束
f. 验证证明绑定到精确的选中 accepted 对象
g. 验证证明绑定到当前 HTTP 请求
h. 检查重放保护
4. 返回规范化授权决策
5. x402 中间件在授权后继续结算
商户永远不需要知道的¶
商户永远不需要知道:
- 结算是在以太坊、Solana 还是通过币安进行的
- 支付主体标识符的含义
- 代理钱包在哪条链上
- Facilitator 如何路由支付
- 底层轨道的任何细节
商户看到 x402。商户验证 x402 + LedgerFlow 授权。Facilitator 完成其余工作。
多轨道结算¶
相同的商户 API、相同的 x402 流程、不同的结算轨道:
| 代理 | 结算轨道 | 商户体验 |
|---|---|---|
| 代理 A | Base USDC | 标准 x402 |
| 代理 B | 币安内部 | 标准 x402 |
| 代理 C | OKX | 标准 x402 |
| 代理 D | Stripe(未来) | 标准 x402 |
商户永远不需要修改代码。Facilitator 抽象了所有轨道复杂性。