Moon

 · 2 days ago

Hono + x402:快速构建微支付 API 服务指南

这是一个独立、轻量级的指南,用于使用 Hono(超快 JS 框架)和 x402(HTTP 402 微支付协议)构建支付墙 API。

作者:Robert(基于 Pickful 项目讨论)
日期:2025 年 10 月 31 日
版本:1.0

这是一个独立、轻量级的指南,用于使用 Hono(超快 JS 框架)和 x402(HTTP 402 微支付协议)构建支付墙 API。适合边缘部署的高性能服务,如 Pickful 项目中的 AI 推荐 API 收费或内容订阅。x402 让支付无缝:用户支付后返回 200 OK,支持 USD/ETH,无需钱包 SDK。

为什么 Hono + x402?

  • Hono:体积小(14KB)、启动 <1ms、TPS 100k+,兼容 Node/Bun/Deno/Workers。
  • x402:标准协议,最新 x402-hono(v0.6.1)零配置中间件。

适用于独立微服务,如 Pickful 的 pay-per-use 功能,后续可与 Rails/Express 等集成。

先决条件

  • Node.js 18+ 或 Bun/Deno。
  • pnpm(推荐包管理器,替换 npm)。
  • Ethereum 钱包地址(接收支付,例如 0x9e9013ee17f53968775535f8601fbbc63ffbdbc0)。
  • 测试网(如 Base Sepolia)避免 gas 费。

步骤 1:初始化项目

mkdir hono-x402 && cd hono-x402
pnpm init # 创建 package.json

步骤 2:安装依赖

pnpm add hono x402-hono x402  # 核心:Hono + x402 集成
pnpm add -D @hono/node-server tsx @types/node # Node 服务器 + TS 支持

步骤 3:创建 app.ts

替换你的钱包地址,配置支付路由(示例基于 Pickful 的高级推荐端点)。

import { Hono } from "hono";
import { paymentMiddleware } from "x402-hono";
import { serve } from "@hono/node-server";

const app = new Hono();

// 配置支付墙:payTo 是你的钱包地址
app.use(paymentMiddleware("0x9e9013ee17f53968775535f8601fbbc63ffbdbc0", {
"/api/pickful-premium": {
price: "$0.05", // USD 定价,或 "0.001 ETH"
network: "base-sepolia", // 测试网
config: {
description: "访问 Pickful 高级推荐内容",
maxTimeoutSeconds: 300, // 支付有效期
mimeType: "application/json"
}
}
// 添加更多:"/api/pickful-ai-generate": { price: "$0.10", ... }
}));

// 保护的路由:支付成功返回内容
app.get("/api/pickful-premium", (c) => {
return c.json({ message: "Pickful 付费内容解锁!", data: "你的独家推荐数据" });
});

// 启动服务器
serve({ fetch: app.fetch, port: 3000 });
console.log("Hono + x402 running on http://localhost:3000");

步骤 4:更新 package.json 脚本

{
"scripts": {
"dev": "tsx watch app.ts",
"start": "tsx app.ts"
}
}

步骤 5:运行与测试

pnpm dev  # 监听 http://localhost:3000
  • 测试:浏览器/cURL 访问 http://localhost:3000/api/pickful-premium
    • 未支付:返回 402 + X402-Price 头(支付墙)。
    • 支付后:200 + JSON 数据。
  • 用 x402 测试工具(x402.org)模拟支付验证。

部署

  • 平台:Vercel/Cloudflare Workers(边缘,低延迟)。
    • 设置环境:PAY_TO_ADDRESS=你的地址FACILITATOR_URL=官方服务
  • 生产配置:用主网(base),HTTPS 必备。动态定价:用函数计算 price

结论

Hono + x402 让微支付 API 启动只需 5 分钟。高性能、易扩展,如 Pickful 项目中的实时收费场景。欢迎 fork/PR 到 GitHub!

资源

#x402 #hono #402

Author Robert