简单理解 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
相关推荐
import_random5 分钟前
[macos]rocketmq(安装)
后端
Jooolin5 分钟前
【编程史】Git是啥?它和GitHub关系是?
linux·git·github
程序员小假24 分钟前
你会不会使用 SpringBoot 整合 Flowable 快速实现工作流呢?
java·后端
明月与玄武1 小时前
快速掌握Django框架设计思想(图解版)
后端·python·django
陪我一起学编程1 小时前
关于ORM增删改查的总结——跨表
数据库·后端·python·django·restful
南囝coding1 小时前
这个 361K Star 的项目,一定要收藏!
前端·后端·github
虎鲸不是鱼1 小时前
Spring Boot3流式访问Dify聊天助手接口
java·spring boot·后端·大模型·llm
onlooker66661 小时前
Go语言底层(五): 深入浅出Go语言的ants协程池
开发语言·后端·golang
roman_日积跬步-终至千里1 小时前
【系统设计【1】】系统设计面试方法论:从0到百万用户的需求到架构的推演
面试·架构
武子康2 小时前
Java-46 深入浅出 Tomcat 核心架构 Catalina 容器全解析 启动流程 线程机制
java·开发语言·spring boot·后端·spring·架构·tomcat