Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

为 HTTP 内容收费

x402-proxy 模板是一个位于任意 HTTP 后端前的 Cloudflare Worker。当请求命中受保护的路由时,代理会返回带有支付指令的 402 响应。客户端付款后,代理验证支付并将请求转发到你的源站。

将 x402-proxy 模板部署到你的 Cloudflare 账户:

Deploy to Cloudflare

前置条件

  • 一个 Cloudflare 账户 ↗
  • 一个待设置门槛的 HTTP 后端
  • 一个用于接收付款的钱包地址

配置

wrangler.jsonc 中定义受保护的路由:


{

  "vars": {

    "PAY_TO": "0xYourWalletAddress",

    "NETWORK": "base-sepolia",

    "PROTECTED_PATTERNS": [

      {

        "pattern": "/api/premium/*",

        "price": "$0.10",

        "description": "Premium API access"

      }

    ]

  }

}


注意

base-sepolia 是测试网络。生产环境请改为 base

使用 Bot Management 进行选择性收费

借助 Bot Management,代理可以在向爬虫收费的同时让人类用户免费访问站点:


{

  "pattern": "/content/*",

  "price": "$0.10",

  "description": "Content access",

  "bot_score_threshold": 30,

  "except_detection_ids": [117479730]

}


bot 分数低于 bot_score_threshold 的请求将被引导到付费墙。使用 except_detection_ids 可通过检测 ID 将特定爬虫加入白名单。

部署

克隆模板,编辑 wrangler.jsonc,然后部署:

Terminal window


git clone https://github.com/cloudflare/templates

cd templates/x402-proxy-template

npm install

npx wrangler deploy


完整的配置选项和 Bot Management 示例,请参考模板 README ↗

自定义 Worker 端点

要获得更多控制权,可使用 Hono 直接将 x402 中间件添加到你的 Worker:

TypeScript


import { Hono } from "hono";

import { paymentMiddleware } from "x402-hono";


const app = new Hono<{ Bindings: Env }>();


app.use(

  paymentMiddleware(

    "0xYourWalletAddress" as `0x${string}`,

    {

      "/premium": {

        price: "$0.10",

        network: "base-sepolia",

        config: { description: "Premium content" },

      },

    },

    { url: "https://x402.org/facilitator" },

  ),

);


app.get("/premium", (c) => c.json({ message: "Thanks for paying!" }));


export default app;


完整实现请参考 x402 Workers 示例 ↗

相关内容