banner
约 1,800 字
6 分钟

搭建USDT 收款监控系统

摘要

基于 Cloudflare Workers 边缘网络构建的全链 USDT 收款监控矩阵。覆盖 20+ 主流公链,按需唤醒扫块,秒级触发回调,为发卡网/商户系统提供企业级收款能力。内置 BEpusdt 兼容网关,支持独角数卡、彩虹易支付等主流发卡系统一键对接。

前置准备

  • 一个 Cloudflare 账号

  • 仓库代码

方式一:浏览器界面部署(新手)

注:由于 Cloudflare 在网站界面与命令行对配置的支持不同,界面部署会缺少几个后台图标显示,不影响核心功能。

Cloudflare 的界面以及文字可能会有变化,本文基于2026年10月11日中文语言界面撰写。

第1步:创建 D1 数据库

D1 用于存储交易流水、回调路由、收款地址等业务数据。

  1. 左侧菜单 → 存储和数据库 → D1 SQLite 数据库

  2. 点击 创建数据库

  3. 数据库名填写 xy-usdt ,数据位置一般默认即可

  4. 点击 创建

  5. 复制 数据库ID 保存好 示例:dab84344-ebf6-4cc0-9b61-f532e0ec6d58

第2步:初始化数据库表结构

系统首次请求时也会自动建表,但开发者建议手动执行一次。

  1. 点击刚创建的 xy-usdt 数据库进入详情页

  2. 点击上方的 控制台 标签页

  3. 复制下方全部sql建表语句,粘贴到输入框中,点击 执行

SQL
CREATE TABLE IF NOT EXISTS orders (
    tx_hash TEXT,
    network TEXT NOT NULL,
    amount TEXT NOT NULL,
    from_address TEXT NOT NULL,
    to_address TEXT,
    status TEXT DEFAULT 'pending',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (tx_hash, network)
);

CREATE TABLE IF NOT EXISTS webhooks (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    url TEXT NOT NULL,
    secret TEXT NOT NULL,
    binds TEXT DEFAULT '*',
    callback_type TEXT DEFAULT 'default',
    icon TEXT,
    remark TEXT,
    enabled INTEGER DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS addresses (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    address TEXT NOT NULL,
    icon TEXT,
    remark TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS sys_state (
    key_name TEXT PRIMARY KEY,
    key_value TEXT
);

CREATE TABLE IF NOT EXISTS active_watches (
    order_id TEXT PRIMARY KEY,
    address TEXT NOT NULL,
    network TEXT NOT NULL,
    expected_amount TEXT NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

执行结果

此查询已成功执行。

响应时间 839 毫秒,查询时间 4.28 毫秒

💡 看到类似的字样,就表示建表成功了。

第3步:创建 KV 命名空间

KV 用于存储系统配置(账号密码、网络节点、扫块参数等)。

  1. 左侧菜单 → 存储和数据库 → Workers KV

  2. 点击 创建KV命名空间

  3. 名称填写 xy-usdt ,数据位置同样默认即可,点击 创建

  4. 创建成功后,右边能看到 Namespace ID 复制保存好,示例:76efe9f2cf7c4d16a535800e4199971a

第4步:创建 Worker

  1. 左侧菜单 → 计算 → Workers 和 Pages

  2. 点击 创建应用程序

  3. 选择 从Hello World!开始 ,名称继续填 xy-usdt.自己的Worker域名.workers.dev(可自定义)

  4. 点击 部署

第5步:绑定数据库和存储

  1. 在刚才建的 Worker 里 → 设置 → 绑定

  2. 添加绑定 → D1 数据库 → 添加绑定
    - 变量名称:db(小写)
    - D1 数据库:选择 xy-usdt
    - 点击 添加绑定

  3. 再次点击 添加绑定 → KV 命名空间 → 添加绑定
    - 变量名称:kv(小写)
    - KV 命名空间:选择 xy-usdt
    - 点击 添加绑定

  4. 再次点击 添加绑定 → 资产 → 添加绑定(这一步在线创建的Worker找不到)
    - 变量名称: assets (小写)
    - 点击 添加绑定

第6步:配置 Cron 触发器

Cron 触发器是扫块引擎的备用保底机制。

  1. 在刚才建的 Worker 里 → 设置 → 触发事件 → Cron 触发器 → 添加

  2. 选择 Cron表达式,输入 * * * * * (每分钟执行一次)

  3. 点击 添加

第7步:上传代码

  1. 在刚才建的 Worker 里,右上方找到并点击 编辑代码

  2. 将 worker.js 里的代码全部清空,粘贴本项目的 worker.js 里的代码

  3. 快捷键 Ctrl+B 或者点击编辑器右上角的展开文件树图标(鼠标悬停有 Toggle Primary Side Bar 提示),展开文件树

  4. 将项目里的 /public 文件夹,拖动上传到文件数的根目录,与 worker.js 同级

  5. 点击右上角的 部署

注:在线编辑器上传图片,会因为Worker没有assets绑定,上传的图片无法生效,刷新后还是未上传状态。

图片仅用于后台界面的网络图标显示,不影响核心功能。

第8步:访问后台

  1. 浏览器访问 https://xy-usdt.自己的Worker域名.workers.dev

  2. 使用默认账号登录

    • 账号: admin

    • 密码: 123456

  3. 进入「基础配置」修改默认密码!

至此项目已经跑起来了,恭喜!

方式二:命令行部署(有经验者)

本地需要用到的工具支持

  • Bun.js ( 比Nodejs更简单易用,一把梭 )

  • Wrangler CLI Bun自带,如果用Nodejs则需要单独下载它

第 1 步:克隆仓库

Shell
git clone https://github.com/xyusdtpro/xyusdt-pro.git
cd xyusdt-pro

第 2 步:登录 Cloudflare 账号

在终端中运行以下命令,强烈建议使用 Bun 替代 Nodejs

Shell
# Bun可以直接使用命令
bunx wrangler login

# Node需要先安装wrangler,再执行命令
npm install -g wrangler
wrangler login

浏览器会自动弹出授权页面,勾选 授予所有账户的访问权限 ,点击 授权

Shell
# 检查登录状态
bunx wrangler whoami

如果终端返回了 Cloudflare 账户邮箱以及对应的账号 ID (Account ID) 等信息,说明登录和关联已经完全成功

第 3 步:创建 D1 数据库

Shell
# 执行
bunx wrangler d1 create xy-usdt

# 输出示例:
# ✅ Successfully created DB 'xy-usdt'
# database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

第 4 步:创建 KV 命名空间

Shell
# 执行
bunx wrangler kv namespace create xy-usdt

# 输出示例:
{ binding = "kv", id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }

第 5 步:配置 wrangler.toml

Shell
name = "xy-usdt"
main = "worker.js"
compatibility_date = "2026-05-20"
preview_urls = false

[triggers]
crons = ["* * * * *"]

[[kv_namespaces]]
binding = "kv"
id = "KV命名空间ID"

[[d1_databases]]
binding = "db"
database_name = "xy-usdt"
database_id = "D1数据库ID"

[[rules]]
type = "Text"
globs = ["**/*.html"]
fallthrough = true

[assets]
binding = "assets"
directory = "public"
run_worker_first = true

第 6 步:部署到 Cloudflare

Shell
# 先初始化数据库
bunx wrangler d1 execute xy-usdt --file=./schema.sql

# 部署命令
bunx wrangler deploy

# 输出示例:
# Published xy-usdt (x.xx sec)
#  https://xy-usdt.自己的Worker域名.workers.dev

部署完成,恭喜!

END