Skip to main content
RedClaw
返回部落格
automation

Telegram Bot 支付整合:加密貨幣收款指南

RedClaw Team
2026/3/14
9 min read

Telegram Bot 支付整合:加密貨幣收款指南

Telegram 與 TON(The Open Network)區塊鏈的深度整合,讓 Telegram Bot 成為加密貨幣支付的天然入口。用戶可以在對話中直接完成付款,不需要跳轉到外部網站或下載額外的錢包應用。

對於需要接受加密貨幣付款的業者來說,這不只是技術上的便利,更是商業模式上的突破。本文涵蓋從基礎設定到進階整合的完整指南。

為什麼在 Telegram 中接受加密貨幣

市場趨勢

2026 年的加密貨幣支付市場已經和幾年前大不相同:

穩定幣普及:USDT、USDC 等穩定幣解決了價格波動的問題。商家收到的就是等值美元,不需要承擔幣價風險。

用戶習慣養成:Telegram 上數億用戶中,相當比例已經擁有加密錢包。特別是在中東、東南亞、東歐等地區,加密支付已經是日常。

手續費優勢:傳統信用卡手續費 2.5-3.5%,加密貨幣轉帳在 TON 網路上的手續費不到 $0.01。對於高頻小額交易,成本差距巨大。

跨境無障礙:不需要國際匯款、不需要外幣帳戶、不需要等 3-5 個工作天。加密貨幣轉帳是即時的、全球的。

適用場景

場景說明優勢
數位產品銷售課程、模板、電子書即時交付、零退款詐騙
訂閱制服務SaaS、會員制自動續訂、全球用戶
iGaming 存款玩家儲值快速入金、隱私保護
自由接案設計、開發、行銷跨境收款、低手續費
NFT/數位收藏品限量內容、會員卡鏈上驗證、可轉讓性
打賞/贊助內容創作者直接支持、透明

TON 支付整合

TON 生態系簡介

TON 是 Telegram 創辦人 Pavel Durov 最初發起的區塊鏈項目。雖然後來因監管壓力由社群接手開發,但 TON 與 Telegram 的整合仍然是所有區塊鏈中最深的:

  • Telegram Wallet:內建在 Telegram 中的 TON 錢包
  • TON Connect:用於 dApp 和 Mini App 的錢包連接協議
  • TON Payments:微支付通道,適合高頻小額交易
  • TON DNS:人類可讀的地址系統(例如 redclaw.ton

基本收款 Bot 實作

以下是使用 TON 接收付款的基本架構:

const TelegramBot = require('node-telegram-bot-api');
const { TonClient, WalletContractV4 } = require('@ton/ton');

const bot = new TelegramBot(process.env.TELEGRAM_BOT_TOKEN, { polling: true });
const tonClient = new TonClient({
  endpoint: 'https://toncenter.com/api/v2/jsonRPC'
});

// 商品目錄
const products = {
  'template_pack': {
    name: '行銷模板包',
    price: 9.99, // USDT
    description: '包含 50+ 可編輯的行銷模板'
  },
  'audit_report': {
    name: '廣告帳戶診斷報告',
    price: 49.99,
    description: '完整的廣告帳戶健檢分析'
  },
  'consultation': {
    name: '1 對 1 諮詢(60 分鐘)',
    price: 149.99,
    description: '與資深顧問一對一策略諮詢'
  }
};

// 顯示商品列表
bot.onText(/\/shop/, (msg) => {
  const chatId = msg.chat.id;
  const keyboard = Object.entries(products).map(([id, product]) => ([
    { text: `${product.name} — $${product.price}`, callback_data: `buy_${id}` }
  ]));

  bot.sendMessage(chatId,
    '我們的商品與服務:\n\n' +
    '所有商品均接受 USDT (TRC-20/TON) 和 TON 幣付款。',
    { reply_markup: { inline_keyboard: keyboard } }
  );
});

// 處理購買請求
bot.on('callback_query', async (query) => {
  if (!query.data.startsWith('buy_')) return;

  const productId = query.data.replace('buy_', '');
  const product = products[productId];
  const chatId = query.message.chat.id;
  const userId = query.from.id;

  if (!product) return;

  // 生成唯一的訂單 ID
  const orderId = `ORD-${userId}-${Date.now()}`;

  // 生成收款地址(或使用固定地址 + memo)
  const paymentAddress = process.env.TON_PAYMENT_ADDRESS;
  const memo = orderId; // 用 memo 區分不同訂單

  await bot.sendMessage(chatId,
    `訂單確認:\n\n` +
    `商品:${product.name}\n` +
    `金額:$${product.price} USDT\n` +
    `訂單編號:${orderId}\n\n` +
    `付款方式:\n\n` +
    `1. TON 錢包轉帳:\n` +
    `   地址:${paymentAddress}\n` +
    `   備註(必填):${memo}\n` +
    `   金額:${product.price} USDT\n\n` +
    `2. 使用 Telegram Wallet:\n` +
    `   點擊下方按鈕直接付款\n\n` +
    `付款後請等待 1-2 分鐘,系統將自動確認並交付。`,
    {
      reply_markup: {
        inline_keyboard: [
          [{ text: '使用 Telegram Wallet 付款', callback_data: `pay_wallet_${orderId}` }],
          [{ text: '已完成轉帳', callback_data: `confirm_${orderId}` }],
          [{ text: '取消訂單', callback_data: `cancel_${orderId}` }]
        ]
      }
    }
  );

  // 儲存訂單到資料庫
  await saveOrder(orderId, userId, productId, product.price, 'pending');

  bot.answerCallbackQuery(query.id);
});

付款確認監聽

自動監聽區塊鏈上的交易以確認付款:

async function monitorPayments() {
  const address = process.env.TON_PAYMENT_ADDRESS;

  // 持續監聽新交易
  setInterval(async () => {
    const transactions = await tonClient.getTransactions(address, {
      limit: 20
    });

    for (const tx of transactions) {
      // 解析交易備註(memo)
      const memo = extractMemo(tx);
      if (!memo || !memo.startsWith('ORD-')) continue;

      // 查找對應訂單
      const order = await getOrderByMemo(memo);
      if (!order || order.status !== 'pending') continue;

      // 驗證金額
      const receivedAmount = parseFloat(tx.value) / 1e9; // TON 精度
      if (receivedAmount >= order.amount * 0.99) { // 允許 1% 誤差
        // 更新訂單狀態
        await updateOrderStatus(memo, 'confirmed', tx.hash);

        // 交付商品
        await deliverProduct(order.userId, order.productId);

        // 通知用戶
        bot.sendMessage(order.userId,
          `付款確認成功!\n\n` +
          `訂單:${memo}\n` +
          `交易哈希:${tx.hash}\n\n` +
          `你的商品已準備好,請查看下方訊息。`
        );
      }
    }
  }, 30000); // 每 30 秒檢查一次
}

多幣種支付支援

除了 TON 原生代幣,商家通常需要支援更多幣種:

支援的主流幣種

幣種網路確認時間手續費適用場景
USDTTON~5 秒<$0.01日常收款首選
USDTTRC-20~3 分鐘~$1大額交易
USDTERC-20~5 分鐘$5-50機構用戶
TONTON~5 秒<$0.01Telegram 原生用戶
BTCBitcoin~30 分鐘$1-10大額/儲值型交易
SOLSolana~1 秒<$0.01DeFi 用戶

使用第三方支付閘道

如果不想自建支付基礎設施,可以使用第三方閘道:

Helio(RedClaw 已整合的方案):

  • 支援 SOL、USDT、USDC 等多幣種
  • 提供 Webhook 回調確認
  • 自動匯率換算
  • 商家後台管理
// Helio 付款連結生成
async function createHelioPayment(orderId, amount, currency = 'USDT') {
  const response = await fetch('https://api.hel.io/v1/pay-link', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.HELIO_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      amount: amount,
      currency: currency,
      description: `Order ${orderId}`,
      webhookUrl: `https://yourdomain.com/api/webhook/helio`,
      metadata: { orderId }
    })
  });

  const data = await response.json();
  return data.payLink;
}

Telegram 內建支付 API

Telegram 還提供了原生的 Payments API,支援信用卡和加密貨幣:

// 使用 Telegram Payments API 發送發票
bot.on('callback_query', async (query) => {
  if (!query.data.startsWith('pay_native_')) return;

  const productId = query.data.replace('pay_native_', '');
  const product = products[productId];

  await bot.sendInvoice(query.message.chat.id, {
    title: product.name,
    description: product.description,
    payload: JSON.stringify({ productId, userId: query.from.id }),
    provider_token: process.env.PAYMENT_PROVIDER_TOKEN,
    currency: 'USD',
    prices: [
      { label: product.name, amount: Math.round(product.price * 100) }
    ],
    start_parameter: `buy_${productId}`
  });
});

// 處理成功付款
bot.on('successful_payment', async (msg) => {
  const payload = JSON.parse(msg.successful_payment.invoice_payload);

  await deliverProduct(payload.userId, payload.productId);
  bot.sendMessage(msg.chat.id,
    '付款成功!感謝你的購買。\n你的商品馬上送到。'
  );
});

安全考量

支付安全最佳實踐

  1. 私鑰管理:永遠不要在程式碼中硬編碼私鑰。使用環境變數或密鑰管理服務(如 AWS KMS、Google Secret Manager)。

  2. 金額驗證:永遠在伺服器端驗證付款金額,不要信任客戶端傳來的金額數據。

// 正確做法:伺服器端驗證
async function verifyPayment(orderId, transactionHash) {
  const order = await getOrder(orderId);
  const tx = await getTransaction(transactionHash);

  // 驗證收款地址
  if (tx.to !== process.env.TON_PAYMENT_ADDRESS) {
    throw new Error('Invalid receiving address');
  }

  // 驗證金額(允許小幅誤差處理精度問題)
  if (tx.amount < order.amount * 0.99) {
    throw new Error('Insufficient payment amount');
  }

  // 驗證交易未被使用過(防止雙重消費)
  if (await isTransactionUsed(transactionHash)) {
    throw new Error('Transaction already processed');
  }

  return true;
}
  1. 雙重確認:對於高價值交易,等待多個區塊確認後再交付商品。

  2. 速率限制:限制每個用戶的購買頻率,防止自動化攻擊。

  3. 訂單過期:設定訂單有效期(建議 30 分鐘),過期未付款自動取消。

防詐騙機制

// 訂單過期處理
async function expireOldOrders() {
  const thirtyMinutesAgo = new Date(Date.now() - 30 * 60 * 1000);

  const expiredOrders = await db.collection('orders')
    .where('status', '==', 'pending')
    .where('createdAt', '<', thirtyMinutesAgo)
    .get();

  for (const order of expiredOrders.docs) {
    await order.ref.update({ status: 'expired' });
    bot.sendMessage(order.data().userId,
      `訂單 ${order.id} 已過期。如需重新購買,請輸入 /shop。`
    );
  }
}

// 每 5 分鐘執行一次
setInterval(expireOldOrders, 5 * 60 * 1000);

合規要求

了解你的客戶(KYC)

根據交易金額設定不同的 KYC 等級:

單筆金額KYC 要求
< $100無需 KYC(視當地法規)
$100 - $1,000基本 KYC(姓名、Email)
$1,000 - $10,000增強 KYC(身分證、地址證明)
> $10,000完整 KYC + 資金來源證明

反洗錢(AML)

  • 監控異常交易模式(同一用戶短時間內大量小額交易)
  • 對高風險錢包地址進行過濾(使用 Chainalysis 或類似服務的 API)
  • 保留所有交易記錄至少 5 年
  • 設定可疑交易自動通報機制

稅務申報

  • 記錄所有收入的法幣等值金額(以交易時的匯率計算)
  • 區分不同幣種的收入
  • 考慮使用加密貨幣稅務計算服務(如 CoinTracker、Koinly)
  • 諮詢當地稅務專業人士了解具體申報要求

進階功能

訂閱制自動扣款

使用 TON 智能合約實現自動訂閱:

// 訂閱管理
bot.onText(/\/subscribe/, (msg) => {
  bot.sendMessage(msg.chat.id,
    '選擇你的訂閱方案:\n\n' +
    '所有方案均自動續訂,可隨時取消。',
    {
      reply_markup: {
        inline_keyboard: [
          [{ text: '基本版 — $9.99/月', callback_data: 'sub_basic' }],
          [{ text: '專業版 — $29.99/月', callback_data: 'sub_pro' }],
          [{ text: '企業版 — $99.99/月', callback_data: 'sub_enterprise' }]
        ]
      }
    }
  );
});

即時匯率顯示

讓用戶即時看到他們需要支付的加密貨幣數量:

bot.onText(/\/rates/, async (msg) => {
  const rates = await fetchCurrentRates();

  bot.sendMessage(msg.chat.id,
    '目前匯率:\n\n' +
    `TON/USD: $${rates.TON.toFixed(2)}\n` +
    `SOL/USD: $${rates.SOL.toFixed(2)}\n` +
    `BTC/USD: $${rates.BTC.toFixed(2)}\n\n` +
    `匯率每 30 秒更新一次\n` +
    `最後更新:${new Date().toLocaleString('zh-TW')}`
  );
});

結語

Telegram Bot 的加密貨幣支付整合正在改變線上交易的方式。對於目標受眾本身就在 Telegram 上的業者來說,這是最短的付款路徑——用戶不需要離開對話就能完成付款。

關鍵在於:從簡單開始(先支援 USDT on TON),確保安全和合規,然後根據用戶需求逐步擴展支援的幣種和功能。

技術上的門檻已經大幅降低。真正的挑戰在於建立用戶對你的支付流程的信任。清楚的價格標示、即時的訂單確認、透明的交易記錄——這些才是讓用戶願意在你的 Bot 中付款的關鍵。


需要協助整合加密貨幣支付到你的 Telegram Bot?聯繫 RedClaw 取得客製化的支付整合方案。


了解我們的行銷自動化服務 →

分享:

讓你的廣告預算發揮最大效益

從帳號養成到數據追蹤,一站式搞定。

  • 專屬客戶經理,即時優化投放策略
  • 完整追蹤架構,每一分錢花得明明白白
  • 跨平台投放經驗,Meta / Google / TikTok

免費獲取您的廣告健檢報告

讓我們的專家分析您的廣告帳戶,找出浪費預算的關鍵問題。

100% 免費48 小時內回覆無綁約

📬 訂閱電子報

每週一封,投放實戰、產業趨勢、工具教學。不灌水,純乾貨。

我們不會分享你的 Email。隨時可以取消訂閱。