简单理解 x402 支付协议

x402 支付协议是一种基于 HTTP 的链无关支付标准,利用现有的 402 Payment Required HTTP 状态码来指示资源访问需要付款。它旨在为客户端和服务器提供无需许可、安全、无 gas 费用的支付体验,并且集成简单。

基础概念

  • 资源:任何接受 HTTP/HTTPS 请求的网络资源,如网页、文件服务器、API 等。
  • 客户端:想要为资源付款的实体。
  • 资源服务器:提供 API 或其他资源的 HTTP 服务器。
  • 促进服务器:帮助验证和执行链上支付的服务器。

x402 协议的主要特点

  • 无需许可:客户端和服务器无需许可即可使用。
  • 无 gas 费用:客户端和资源服务器无需支付 gas 费用。
  • 简单集成:资源服务器只需一行代码,客户端只需一个函数。
  • 可扩展:支持不同支付流程和区块链。

x402 协议流程

  1. 客户端请求资源:客户端向资源服务器发送 HTTP 请求。
  2. 资源服务器响应:资源服务器返回 402 Payment Required 状态码和 Payment Required Response JSON 对象。
  3. 客户端选择支付方式:客户端从响应中选择一个支付方式,创建 Payment Payload。
  4. 客户端发送支付请求:客户端在 X-PAYMENT 头中包含 Payment Payload 发送请求。
  5. 资源服务器验证支付:资源服务器验证支付有效性,可能通过促进服务器。
  6. 促进服务器处理支付:促进服务器验证并在区块链上结算支付。
  7. 资源服务器返回资源:如果支付成功,资源服务器返回资源和 X-PAYMENT-RESPONSE 头。

示例代码

javascript 复制代码
// 使用 paymentMiddleware 接受数字美元
app.use(
  "/your-endpoint",
  paymentMiddleware("$0.10", "0x209693Bc6afc0C5328bA36FaF03C514EF312287C")
);

支付方案(Schemes)

  • exact 方案:转移固定金额,例如支付 1 美元阅读文章。
  • upto 方案:根据资源使用情况转移最多固定金额,例如生成 LLM 令牌。

运行示例

  1. 克隆示例仓库。
  2. 安装依赖。
  3. 分别运行促进服务器、资源服务器和客户端。
bash 复制代码
cd example
npm install
npm run facilitator
npm run resource
npm run client

测试

  1. 安装依赖。
  2. 创建 .env 文件并配置。
  3. 运行测试。
bash 复制代码
cd packages/typescript
npm install
npm run test
相关推荐
葫芦和十三7 小时前
图解 MongoDB 15|journal 与持久化:写入怎么不丢,崩溃怎么恢复
后端·mongodb·面试
葫芦和十三7 小时前
图解 MongoDB 16|压缩:snappy、zstd 和 zlib 的取舍
后端·mongodb·面试
苍何7 小时前
终于找到免费开源TTS模型,克隆声音不要钱,本地电脑也能跑
后端
用户593608741407 小时前
Spring AI 集成 DeepSeek 原生供应商并实现think模式
后端
追逐时光者7 小时前
别再满网找零散工具了,腾讯 QQ 浏览器这个“帮小忙”工具箱真能省时间
前端·后端
心静自然凉8007 小时前
Linux网络核心知识+bonding主备模式配置
后端
爻渡9 小时前
异步编程演进史:从回调到Promise再到Async/Await
后端·程序员
要阿尔卑斯吗11 小时前
企业级 RAG 系统的文件标签管理:三层架构与层级优化实战
后端
要阿尔卑斯吗11 小时前
Agent开发之为什么有了LangChain4j框架,我们却不能直接使用它?——桥接层设计详解
后端
用户77139702070611 小时前
从CMD到PowerShell:一个.NET开发者的命令行进化之路
后端