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):享受服务(看电影)并支付费用 - 验票口:验证观众是否有有效票证 - 售票处:出售电影票给观众
支付流程类比:
- 观众入场(Client 请求资源)
- 观众走到验票口,出示电影票
-
Client 向 Server 发送请求,携带访问令牌
-
验票检查(Server 验证令牌)
- 验票员检查票证真伪、有效期
-
Server 验证访问令牌的有效性
-
无票处理(返回 402 状态码)
- 如果观众没票或票已过期,验票员会说:"请去售票处买票"
-
如果 Client 没有有效令牌,Server 返回 402 状态码 + 支付信息
-
购票过程(Client 完成支付)
- 观众去售票处,选择场次、支付购票
-
Client 根据支付信息,使用私钥签名完成链上支付
-
重新验票(获取访问令牌)
- 观众拿着新票返回验票口
-
Client 将支付签名发送到
/token端点,获取访问令牌 -
成功观影(获取资源)
- 验票通过,观众进入影厅观影
- Client 使用新令牌重新请求,成功获取资源
职责分离的关键:
- 验票口(Server 业务端点):只负责验证,不处理购票
- 售票处(/token 端点):专门处理支付和发牌
- 观众(Client):自动完成整个流程,体验无缝
这种设计实现了职责分离,使得支付逻辑与业务逻辑解耦,提高了系统的安全性和可维护性。
下一步
- 查看 快速开始 快速部署
- 查看 API 参考 获取详细文档
- 拓展阅读 x402用到了哪些协议 了解更多相关知识
- 访问 GitHub 仓库查看完整内容:https://github.com/OpenPayhub/x402-mock
- ⚠️ 生产使用前请在测试网(如 Sepolia)上进行测试