跳到正文
← 使用教程

x402 超时后是否重付:核对待定结算与支付标识

链小知 · 进阶 · 核验 · 依官方文档整理

先核对广播记录,再检查可选幂等扩展和存储范围。

开始前准备

  • 使用已有脱敏记录或官方示例;不保存密钥、签名原文或个人账户资料。
  • 只核对材料;不安装SDK、不调用账户或资金API、不创建付款。

1. 识别待定结果

settlement_pending 表示已广播但无法确认,属于非终态;先核对 transaction 和 network。超时或5xx没有哈希也不能直接解释为没有付款。

检查结果:待定、失败和未知分列,保留已有哈希。

2. 检查恢复存储

当前标准 resource server 遇待定结果会重试结算一次,facilitator 用 PendingSettlementStore 核对已有广播交易。默认内存存储只覆盖同一进程,多副本需共享实现;不能推广为所有部署都防重。

检查结果:记录实现、版本、存储范围和原交易身份。

3. 核对幂等扩展

payment-identifier 是可选扩展,服务端声明后客户端才携带。同一业务重试沿用标识,不同业务不得复用;服务端应绑定付款条件、路由和业务身份,条件不同应拒绝。

缓存期限和多副本存储由服务方配置;缓存失败可能继续正常处理,不能承诺重放永远免费。实现信息不足就标未知。

检查结果:标识与业务一致,声明、付款条件和缓存范围有依据。

怎样确认完成

  • 记录原请求、条件、标识、广播和待定状态。
  • 不依据超时发送新的付款。

常见错误与边界

  • 支付标识不能替代交易哈希或跨资源随意复用。
  • 协议机制不证明具体商户配置正确。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据