Goncafer47/Stablecoin-Payment-Gateway · 上手攻略

  • 仓库:Goncafer47/Stablecoin-Payment-Gateway
  • 链接:https://github.com/Goncafer47/Stablecoin-Payment-Gateway
  • 分类:支付基础设施 · x402 协议
  • 作者:Tom
  • 更新:2026-09-27

是什么

Self-hosted(自托管)、非托管(non-custodial)的稳定币支付网关,支持 x402 协议,让任何 HTTP 端点摇身一变成为「付费 API」,开发者收款不再依赖 Stripe/PayPal 等中心化平台。用户付的是 USDC/USDT/PYUSD/DAI,资金直接进你自己的链上钱包,平台抽成 0%、无需 KYC。

技术核心是 HTTP 402 状态码的复兴——x402 将「付款验证」嵌入标准 HTTP 请求链,任何语言、任何框架都能通过添加一个 402 响应和 X-PAYMENT 头部来实现付费。

解决什么问题

  • 开发者收款难:想做付费 API 或 SaaS,没有合适渠道;信用卡通道费率 0.5–1%、有 KYC、资金由平台保管
  • 跨境支付摩擦:传统跨境汇款慢、费用高、审核严;稳定币转账 3–5 分钟到账、费用极低
  • 微支付空白:Stripe 等不适合小额支付(最低 $0.50–1.00);x402 支持按请求计费,适合 AI API、文件下载、内容访问等场景
  • 支付数据不透明:传统平台扣点不透明;自托管网关所有交易数据在自己手里,可导出 CSV/JSON

快速安装

环境要求

  • Python 3.10+
  • pip(建议最新)
  • EVM 钱包地址(或 xpub)用于接收结算
  • 可选:自己的 x402 facilitator 用于生产环境主网结算

Windows

git clone https://github.com/Goncafer47/Stablecoin-Payment-Gateway.git
cd Stablecoin-Payment-Gateway
run.bat

Linux / macOS

git clone https://github.com/Goncafer47/Stablecoin-Payment-Gateway.git
cd Stablecoin-Payment-Gateway
chmod +x run.sh
./run.sh

手动安装

pip install -r requirements.txt
python main.py

核心依赖(requirements.txt 关键包)

包 版本 用途
rich ≥13.7.0 终端 UI、表格、进度条
cryptography ≥43.0.1 Webhook 签名与密钥处理
requests ≥2.32.3 Facilitator 和 RPC 调用
aiohttp ≥3.10.11 异步链上观察器(mempool watcher)
qrcode ≥8.0 结算 QR 码生成
web3 ≥7.0.0 链上结算验证

核心用法

配置 config.json

{
  "merchant": {
    "name": "Demo Store",
    "pay_to_address": "0xYourWalletAddress",
    "xpub": "",
    "callback_url": "https://merchant.example.com/hooks/invoices"
  },
  "invoice": {
    "ttl_minutes": 30,
    "underpayment_tolerance_pct": 0.5,
    "overpayment_action": "credit",
    "confirmations": {
      "ethereum": 12, "base": 12, "polygon": 64, "tron": 19
    }
  },
  "chains": {
    "base": {"enabled": true, "rpc": "https://mainnet.base.org"},
    "ethereum": {"enabled": true, "rpc": "https://eth.llamarpc.com"},
    "tron": {"enabled": true, "rpc": "https://api.trongrid.io"}
  },
  "tokens": {
    "USDC": {"enabled": true, "decimals": 6},
    "USDT": {"enabled": true, "decimals": 6}
  },
  "x402": {
    "enabled": true,
    "facilitator_url": "https://x402.org/facilitator",
    "scheme": "exact",
    "paywall_routes": ["/api/premium", "/api/download"]
  },
  "webhooks": {
    "enabled": true,
    "retry_backoff_sec": [5, 30, 120],
    "signing_header": "X-Signature-256"
  }
}

创建固定金额发票(TUI 菜单操作)

启动后是交互式 TUI 菜单:

╔══════════════════════════════════════════════════════════╗
║ STABLECOION PAYMENT GATEWAY v2.6.0                    ║
╠══════════════════════════════════════════════════════════╣
║ [1] 🧾 Create Invoice    固定金额发票+地址              ║
║ [2] 🔗 Payment Links    分享式结算 URL                 ║
║ [3] 📬 Webhooks         HMAC 签名通知                  ║
║ [4] 🧱 x402 Paywall      HTTP 402 按次付费             ║
║ [5] 💸 Settlement        确认数监控&结算状态            ║
║ [6] 🔑 Merchant API Keys REST 凭证管理                  ║
║ [7] ⛓️ Chains & Tokens  8 条链 USDC/USDT              ║
║ [8] ⚙️ Settings        服务器、TTL、偏好               ║
╚══════════════════════════════════════════════════════════╝

选 [1] 创建发票示例输出:

[10:14:52] Deriving deposit address... xpub path m/44'/60'/0'/1042
[10:14:52] Invoice inv_3f9a2c81d4e5b607 registered (live mode)
[10:14:53] Amount: 249.00 USDC | Chain: Base
[10:14:53] Deposit To: 0x4b21...9F02
[10:14:53] Confirmations: 0/12
[10:14:53] Expires: 30 minutes
[10:14:53] Checkout: https://pay.example.com/i/inv_3f9a
[10:15:41] Mempool hit: 249.00 USDC from 0x88c1...A2d4
[10:16:07] Confirmations 12/12 → invoice.settled
[10:16:07] Webhook invoice.settled → 200 OK (138 ms)

x402 付费路由集成(REST API 方式)

启用 x402 后,给 /api/premium 等路由添加付费墙:

# 客户端侧:发起付费请求
import requests

# 1. 访问付费端点,收到 402 Challenge
resp = requests.get("https://yourgateway.com/api/premium")
# resp.status_code == 402
# resp.headers["X-Accepted-Payment"] 包含接受的链和资产

# 2. 构造 X-PAYMENT 签名载荷(由钱包签名的稳定币转账授权)
payment_header = sign_stablecoin_transfer(
    amount=10_000_000,  # 10 USDC (6 decimals)
    chain="base",
    asset="USDC",
    recipient="0xYourMerchantAddress"
)

# 3. 带 X-PAYMENT 重试请求
resp = requests.get(
    "https://yourgateway.com/api/premium",
    headers={"X-PAYMENT": payment_header}
)
# resp.status_code == 200
# resp.headers["PAYMENT-RESPONSE"] 包含结算 tx hash

Webhook 事件序列

invoice.created → invoice.paid → invoice.settled

每个事件通过 HMAC-SHA256 签名,Webhook POST 到 callback_url,重试策略:5s → 30s → 120s 指数退避。

典型适用场景

场景 用法
AI API 付费 每个 GPT/Claude 调用扣一次 USDC,x402 自动验证支付
SaaS 分级订阅 Free/Pro/Premium 三档,对应不同链上金额
数字内容/文件付费 一次性下载付费,invoice TTL = 30 分钟
开源打赏/捐赠 Payment Link 分享给用户,链上直接到账
开发者工具付费 按 API 调用次数计费,无需 Stripe

坑与注意

⚠️ 私钥安全:config.json 中 pay_to_address 对应的私钥必须离线保管或放在硬件钱包;服务器被入侵则资金可被转走。

⚠️ x402 facilitator:演示/测试网阶段可用官方 https://x402.org/facilitator,但生产环境建议自托管 facilitator 或使用可信第三方,否则 facilitator 是整个支付链的单点。

⚠️ Mempool 监控延迟:mempool watcher 实时检测,但不同链 TPS 不同,Base/Ethereum 约 12 个确认(~3–5 分钟),Polygon 需 64 个确认(更长)。

⚠️ Invoice TTL:默认 30 分钟,过期后地址退回地址池,重复付款可能造成资金「悬空」;如需更长 TTL 建议在 config.json 调整 invoice.ttl_minutes。

⚠️ 多链支持:v2.6.0 支持 8 条链(Base/Ethereum/Polygon/Tron 等),但 config.json 中需要填入各链的 RPC 地址;公共 RPC 有速率限制,生产环境建议用付费 RPC 提供商(如 Alchemy/Infura)。

⚠️ 版本号:README 显示 v2.6.0,但 GitHub 最新 release 请自行核实,Python 版本兼容性以 requirements.txt 为准。

⚠️ QR 码钓鱼:支付链接通过 QR 展示时,确保用户核实链和金额;攻击者可替换 QR 内容。

与同类对比

维度 Stripe/PayPal 稳定币直转 本项目
平台费率 0.5–3.5% 0%(链上 Gas) 0%
KYC 必须 无 无
资金托管 平台持有 自己钱包 自己钱包
接入复杂度 SDK/API 成熟 手动转帐+对账 TUI + REST
微支付 不友好(最低 $0.50) 友好(几分钱可转) 友好
退款 平台处理 需要自己写逻辑 需要自己写逻辑
合规 PCI DSS 无 无
适用规模 所有规模 中等规模 开发者/极客

相比链上直接转账,本项目的优势在于自动化对账 + Webhook 通知 + TUI 管理界面,不需要手动盯着区块链浏览器。

一句话推荐

如果你做的是面向全球用户的付费 API 或数字内容平台,想要「资金直接到账、零平台抽成、代码可控」,Goncafer47/Stablecoin-Payment-Gateway 是一个开箱即用的自托管方案,x402 协议让支付逻辑天然融入 HTTP 请求,非常适合开发者生态。