x402 智能体支付:验证、结算与幂等恢复雷达
本文正文暫以英文原文展示,翻譯版本需完成來源複核後再發布。
直接答案
x402 重试不能按普通无状态 HTTP 重试处理。Coinbase 的协议流程把付款要求、签名授权、验证、结算与资源响应分开;故障可能发生在签名前、验证阶段、链上结算中,或结算完成但资源尚未返回时。运营方需要稳定付款标识、有限重试、权威结算查询、签名收据、网络核对,以及防止同一逻辑请求重复付款的规则。
收起完整分析
已核验的来源事实
1. x402 使用 HTTP 402 付款要求、签名付款载荷以及协调器验证和结算流程。 2. Coinbase 说明了不同的验证与结算错误原因,包括签名无效、余额不足、节点故障与确认超时。 3. x402 扩展包含用于重复调用处理的 Payment Identifier,以及记录结算前约定的 Offer Receipt。 4. 链上结算成功与资源交付成功是两个需要分别留证的事件。
对照表
文章表格:可橫向滑動,或聚焦表格區域後使用方向鍵。
| 决策层 | 应核对内容 | 最低安全动作 |
|---|---|---|
| 付款要求 | 价格、资产、网络与收款方 | 签名前验证 |
| 授权 | 签名付款载荷 | 绑定准确请求 |
| 标识 | 一次逻辑购买 | 持久化稳定 ID |
| 验证 | 签名与策略检查 | 分类 invalidReason |
| 结算 | 链上转账结果 | 保存交易证据 |
| 交付 | 已付费资源响应 | 独立记录完成 |
| 重试 | 可重复的具体阶段 | 使用有限分阶段规则 |
| 收据 | 条款与结算确认 | 保留签名证明 |
| 网络 | CAIP-2 链身份 | 拒绝不匹配 |
| 对账 | 付款、账本与服务输出 | 周期匹配 |
1. 控制测试:付款要求
交易控制披露只有转换成可测试规则才有意义。付款要求需要检查价格、资产、网络与收款方。应使用沙箱、非生产环境或最小可逆测试,然后签名前验证。可以保存配置和事件证据,但绝不能记录凭据,并应验证文档所述的撤单、拒绝、减量或历史记录行为。
审计要模拟失败路径,而不只看设置流程。需要追问哪套策略拥有 maker 与 taker 订单、平台按哪个账户边界判断、哪个消息能证明干预,以及部分成交或断线后如何对账。平台文档只能说明支持什么,不能证明操作者配置正确。服务端变化因此必须保留为明确缺口。
付款要求这一行最终应形成一条与价格、资产、网络与收款方绑定的监控规则。执行者应签名前验证,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,服务端变化仍是独立生产风险。
2. 控制测试:授权
授权需要检查签名付款载荷。应使用沙箱、非生产环境或最小可逆测试,然后绑定准确请求。
审计要模拟失败路径,而不只看设置流程。重放因此必须保留为明确缺口。
授权这一行最终应形成一条与签名付款载荷绑定的监控规则。执行者应绑定准确请求,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,重放仍是独立生产风险。
3. 控制测试:标识
标识需要检查一次逻辑购买。应使用沙箱、非生产环境或最小可逆测试,然后持久化稳定 ID。
审计要模拟失败路径,而不只看设置流程。冲突因此必须保留为明确缺口。
标识这一行最终应形成一条与一次逻辑购买绑定的监控规则。执行者应持久化稳定 ID,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,冲突仍是独立生产风险。
4. 控制测试:验证
验证需要检查签名与策略检查。应使用沙箱、非生产环境或最小可逆测试,然后分类 invalidReason。
审计要模拟失败路径,而不只看设置流程。策略漂移因此必须保留为明确缺口。
验证这一行最终应形成一条与签名与策略检查绑定的监控规则。执行者应分类 invalidReason,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,策略漂移仍是独立生产风险。
5. 控制测试:结算
结算需要检查链上转账结果。应使用沙箱、非生产环境或最小可逆测试,然后保存交易证据。
审计要模拟失败路径,而不只看设置流程。节点超时因此必须保留为明确缺口。
结算这一行最终应形成一条与链上转账结果绑定的监控规则。执行者应保存交易证据,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,节点超时仍是独立生产风险。
6. 控制测试:交付
交付需要检查已付费资源响应。应使用沙箱、非生产环境或最小可逆测试,然后独立记录完成。
审计要模拟失败路径,而不只看设置流程。结算后失败因此必须保留为明确缺口。
交付这一行最终应形成一条与已付费资源响应绑定的监控规则。执行者应独立记录完成,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,结算后失败仍是独立生产风险。
7. 控制测试:重试
重试需要检查可重复的具体阶段。应使用沙箱、非生产环境或最小可逆测试,然后使用有限分阶段规则。
审计要模拟失败路径,而不只看设置流程。重复付款因此必须保留为明确缺口。
重试这一行最终应形成一条与可重复的具体阶段绑定的监控规则。执行者应使用有限分阶段规则,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,重复付款仍是独立生产风险。
8. 控制测试:收据
收据需要检查条款与结算确认。应使用沙箱、非生产环境或最小可逆测试,然后保留签名证明。
审计要模拟失败路径,而不只看设置流程。格式变化因此必须保留为明确缺口。
收据这一行最终应形成一条与条款与结算确认绑定的监控规则。执行者应保留签名证明,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,格式变化仍是独立生产风险。
9. 控制测试:网络
网络需要检查CAIP-2 链身份。应使用沙箱、非生产环境或最小可逆测试,然后拒绝不匹配。
审计要模拟失败路径,而不只看设置流程。测试网混淆因此必须保留为明确缺口。
网络这一行最终应形成一条与CAIP-2 链身份绑定的监控规则。执行者应拒绝不匹配,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,测试网混淆仍是独立生产风险。
10. 控制测试:对账
对账需要检查付款、账本与服务输出。应使用沙箱、非生产环境或最小可逆测试,然后周期匹配。
审计要模拟失败路径,而不只看设置流程。延迟终局因此必须保留为明确缺口。
对账这一行最终应形成一条与付款、账本与服务输出绑定的监控规则。执行者应周期匹配,保存平台响应,并为异常指定责任人。文档质量是积极信号,但不能认证交易所或交易系统;在真实观察之前,延迟终局仍是独立生产风险。
决策场景
场景 1:当付款要求成为关键约束
假设读者最关心的是价格、资产、网络与收款方,正确做法不是寻找一个适用于所有人的赢家,而是签名前验证,保存证据,并在投入资金或权限前定义停止条件。只要证据变化,就重新打开决策,而不是继续沿用旧结论。这样得到的是一条能够重复执行的操作规则,而不是一次性的主观看法。
场景 2:当授权成为关键约束
假设读者最关心的是签名付款载荷,正确做法不是寻找一个适用于所有人的赢家,而是绑定准确请求,保存证据,并在投入资金或权限前定义停止条件。
场景 3:当标识成为关键约束
假设读者最关心的是一次逻辑购买,正确做法不是寻找一个适用于所有人的赢家,而是持久化稳定 ID,保存证据,并在投入资金或权限前定义停止条件。
场景 4:当验证成为关键约束
假设读者最关心的是签名与策略检查,正确做法不是寻找一个适用于所有人的赢家,而是分类 invalidReason,保存证据,并在投入资金或权限前定义停止条件。
场景 5:当结算成为关键约束
假设读者最关心的是链上转账结果,正确做法不是寻找一个适用于所有人的赢家,而是保存交易证据,保存证据,并在投入资金或权限前定义停止条件。
场景 6:当交付成为关键约束
假设读者最关心的是已付费资源响应,正确做法不是寻找一个适用于所有人的赢家,而是独立记录完成,保存证据,并在投入资金或权限前定义停止条件。
常见问题
本文是否建议使用或避开某个平台或产品?
不是。它是一套基于来源的决策框架。最终结论取决于用户地区、签约实体、账户、产品、交易规模、风险承受能力与实时条款。
公布的费率或控制措施是否永久有效?
不是。公开费率和控制规则会变化,实际条款也可能针对账户。应核对登录后的实时页面。
页面返回 HTTP 200 是否证明产品正常可用?
不能。公开页面存在,不代表特定地区或账户一定能使用该产品,账户级证据才是最终依据。
为什么必须公开列出未知事项?
因为用假设填补证据空白会制造虚假精确。未知事项说明下一步应该核验什么。
最安全的第一步是什么?
写清具体任务,核验官方来源,采用最小权限和最可逆的路径,并在适合时先做小额测试。
来源与编辑方法
- x402 overview — Coinbase Developer Platform
- x402 FAQ and extensions — Coinbase Developer Platform
- x402 troubleshooting — Coinbase Developer Platform
- HTTP 402 Payment Required — RFC Editor