跳转至

x402-mock

什么是402

你可能见过网页报错的 404(找不到页面),也听过代表成功的 200。但你可能不知道,在互联网的协议里,还专门预留了一个编号 402

在互联网诞生之初,工程师们就预留了 HTTP 402 这个状态码,它的官方定义是:“Payment Required”(需要付费)

简单来说,如果一个资源(比如一篇深度报告或一条精准数据)不是免费的,系统就会返回 402。虽然它被“雪藏”了多年,但在如今这个 AI 时代,它正成为机器与机器之间做生意的通行证。

为什么需要 x402

过去是“人”在网上买东西,流程很慢:挑商品、跳到支付页面、扫码、输密码。

但在 AI Agent(智能体)爆发的今天,主角变成了“机器人”。想象一下:

你的 AI 助理正在帮你写报告,它需要获取今天最新的币圈走势,或者向另一个 AI 购买一条加密数据,这次请求可能只价值 0.01 元。

如果每次为了这几分钱都要人类去扫码确认,AI 的工作就会被切得粉碎。x402 的意义就在于建立一套标准,让 AI 能够自动、低成本地完成这些微型支付,让整个流程像呼吸一样自然。

为什么需要用到签名,而不是直接转账

这可能是大家最关心的问题:既然知道对方地址,直接转账不就行吗?

其实,这里面涉及到一个“用户体验”的硬伤:

  • 直接转账 = 跑银行柜台
    在区块链上,一次真实的转账确认往往需要几秒甚至几分钟。如果你每买一条几分钱的新闻都要等上 30 秒,这种体验简直是灾难。

  • 离线签名 = 签一张支票
    x402 采用了更聪明的办法。作为付款方,你不需要立刻在链上转账,而是用你的私钥签一张“数字支票”(即签名)。

  • 毫秒级响应:你签这张票只需要不到 0.1 秒。

  • 先拿货、后兑现:收款方(卖数据的 AI)拿到这张“支票”后,只需瞬间验证签名的真伪,确认你有钱且确实签了名,就可以立刻把资源发给你。

至于这张支票什么时候去银行(链上)兑换成真钱,收款方可以在后台异步处理,完全不影响你当下的交互体验。

x402-mock 核心概念:电影院比喻

除了以上关于 x402 支付理念外,x402-mock 增加了"白名单"机制内容。 为了更好地理解 x402-mock 的设计理念,我们可以用电影院的例子来说明:

场景设定: - 电影院(Server):提供服务(电影)并收取费用 - 观众(Client):享受服务(看电影)并支付费用 - 验票口:验证观众是否有有效票证 - 售票处:出售电影票给观众

支付流程类比:

  1. 观众入场(Client 请求资源)
  2. 观众走到验票口,出示电影票
  3. Client 向 Server 发送请求,携带访问令牌

  4. 验票检查(Server 验证令牌)

  5. 验票员检查票证真伪、有效期
  6. Server 验证访问令牌的有效性

  7. 无票处理(返回 402 状态码)

  8. 如果观众没票或票已过期,验票员会说:"请去售票处买票"
  9. 如果 Client 没有有效令牌,Server 返回 402 状态码 + 支付信息

  10. 购票过程(Client 完成支付)

  11. 观众去售票处,选择场次、支付购票
  12. Client 根据支付信息,使用私钥签名完成链上支付

  13. 重新验票(获取访问令牌)

  14. 观众拿着新票返回验票口
  15. Client 将支付签名发送到 /token 端点,获取访问令牌

  16. 成功观影(获取资源)

  17. 验票通过,观众进入影厅观影
  18. Client 使用新令牌重新请求,成功获取资源

职责分离的关键: - 验票口(Server 业务端点):只负责验证,不处理购票 - 售票处(/token 端点):专门处理支付和发牌 - 观众(Client):自动完成整个流程,体验无缝

这种设计实现了职责分离,使得支付逻辑与业务逻辑解耦,提高了系统的安全性和可维护性。

下一步

  • 查看 快速开始 快速部署
  • 查看 API 参考 获取详细文档
  • 拓展阅读 x402用到了哪些协议 了解更多相关知识
  • 访问 GitHub 仓库查看完整内容:https://github.com/OpenPayhub/x402-mock
  • ⚠️ 生产使用前请在测试网(如 Sepolia)上进行测试