如何用自托管加密货币支付网关接受 USDT 收款

USDT 教程 自托管

完整教程:部署你自己的加密货币支付网关,接受 USDT(ERC-20、TRC-20、BEP-20)及 100+ 种代币收款,完全掌控资金和私钥。

为什么要接受 USDT 收款?

USDT(泰达币)是全球最广泛使用的稳定币,市值已超过 1400 亿美元。对商家来说,接受 USDT 相比传统支付方式有显著优势:

  • 无拒付 — 链上确认后交易不可逆转
  • 全球覆盖 — 任何有加密钱包的人都可以付款
  • 低费率 — 只需支付区块链 Gas 费,没有 2-3% 的信用卡手续费
  • 即时到账 — 几分钟内到账,无需等待银行结算
  • 多链支持 — 接受以太坊(ERC-20)、波场(TRC-20)、BNB Chain(BEP-20)等多种网络的 USDT

托管支付网关的问题

大多数加密货币支付处理器(如 CoinGate、OpenNode)是托管方案——它们托管你的资金、收取平台费(通常 0.5-1%),你需要信任第三方保管私钥。如果它们宕机或被黑客攻击,你的业务将受到影响。

自托管加密货币支付网关完全解决了这个问题:运行在你自己的服务器上,私钥永远不离开你的基础设施,每笔付款直达你的钱包,零平台费用。

方案一:部署 Xcash(3 分钟)

Xcash 是开源自托管加密货币支付网关,支持 100+ 区块链,涵盖所有主流 USDT 网络。

前提条件

  • Linux 服务器(最低 1 核、2GB 内存)
  • 已安装 Docker 和 Docker Compose
  • 已解析到服务器的域名
  • 所选区块链的 RPC 节点地址

第一步:克隆并初始化

git clone https://github.com/xca-sh/xcash.git
cd xcash
./scripts/init_env.sh

该命令会自动生成所有必要的密钥:Django Secret Key、数据库密码、签名密钥和 HMAC 密钥。

第二步:配置域名

编辑 .env 文件:

SITE_DOMAIN=your-domain.com

第三步:启动服务

docker compose up -d

完成。你的支付网关已开始运行。

第四步:配置区块链 RPC

登录管理后台(默认账号 admin / Admin@123456),进入链管理页面,为需要使用的链填写 RPC 节点地址。接受 USDT 收款通常需要:

  • 以太坊 — ERC-20 USDT
  • 波场 Tron — TRC-20 USDT(最流行,手续费最低)
  • BNB Chain — BEP-20 USDT(低费用,快速确认)
  • Arbitrum / Base / Polygon — L2 USDT 选项

可从 QuickNodeAlchemyInfura 等节点服务商获取 RPC 地址。

接受你的第一笔 USDT 付款

部署完成后,使用 REST API 创建支付账单:

import hashlib, hmac, json, time, uuid
import requests

API_BASE = "https://your-domain.com/api"
APPID = "your-app-id"
HMAC_KEY = "your-hmac-key"

def create_invoice():
    body = json.dumps({
        "out_no": "order-20260515-001",
        "title": "Premium Plan",
        "currency": "USD",
        "amount": "29.99"
    }, separators=(',', ':'))

    timestamp = str(int(time.time()))
    nonce = str(uuid.uuid4())
    message = nonce + timestamp + body
    signature = hmac.new(
        HMAC_KEY.encode(), message.encode(), hashlib.sha256
    ).hexdigest()

    resp = requests.post(
        f"{API_BASE}/v1/invoice",
        data=body,
        headers={
            "XC-Appid": APPID,
            "XC-Timestamp": timestamp,
            "XC-Nonce": nonce,
            "XC-Signature": signature,
            "Content-Type": "application/json"
        }
    )
    return resp.json()

invoice = create_invoice()
print(f"Payment URL: {invoice['pay_url']}")

pay_url 会将你的客户引导至支付页面,他们可以选择用 USDT(或其他支持的加密货币)付款。链上确认后,Xcash 通过 Webhook 将交易详情推送到你的服务器。

方案二:使用 Xcash 云服务(免部署)

如果你不想自己部署,Xcash 也提供云托管版本,每月 $49 起,无需管理基础设施。

安全最佳实践

  • 使用专用服务器 — 不要将 Xcash 与其他对外服务放在一起
  • 启用 IP 白名单 — 限制 API 访问仅来自你的后端服务器
  • 设置提现限额 — 配置每日限额和多重签名审核
  • 监控风险评分 — Xcash 的 MistTrack 集成自动标记可疑地址
  • 安全保管密钥 — 备份 .env 文件和 HMAC 密钥

自托管方案对比

功能 Xcash BTCPay Server CoinGate
自托管
USDT 支持✅ (ERC-20, TRC-20, BEP-20)
100+ 链❌ 仅比特币
零平台费❌ 1%+
充提币
MistTrack 风控
部署时间3 分钟30 分钟+N/A(托管)

总结

接受 USDT 收款不意味着要交出控制权或支付高额费用。像 Xcash 这样的自托管支付网关让你两者兼得:你的客户可以用 USDT 付款,而你完全持有私钥,且无需支付平台费用。

准备开始了吗?3 分钟部署 Xcash:

git clone https://github.com/xca-sh/xcash.git
cd xcash && ./scripts/init_env.sh && docker compose up -d

或访问 xca.sh 使用云托管版本。


相关阅读