[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-2026-ton-telegram-mini-apps-ton-pay-sdk-jiami-zhifu":3},{"article":4,"author":55},{"id":5,"category_id":6,"title":7,"slug":8,"excerpt":9,"content_md":10,"content_html":11,"locale":12,"author_id":13,"published":14,"published_at":15,"meta_title":16,"meta_description":17,"focus_keyword":18,"og_image":19,"canonical_url":19,"robots_meta":20,"created_at":15,"updated_at":15,"tags":21,"category_name":29,"related_articles":35},"d0000000-0000-0000-0000-000000000597","a0000000-0000-0000-0000-000000000034","2026年在TON上构建：使用TON Pay SDK在Telegram Mini Apps中实现加密支付","2026-ton-telegram-mini-apps-ton-pay-sdk-jiami-zhifu","TON生态系统已增长至500M+月活Mini App用户、3600+应用和400M+钱包。本指南详细介绍如何将TON Pay SDK集成到Telegram Mini Apps中，从钱包认证到Jetton转账。","## 2026年的TON生态系统\n\nThe Open Network（TON）已从一个具有Telegram背景的区块链项目发展成为全球最活跃的加密货币生态系统之一。截至2026年3月，数据令人瞩目：\n\n- **500M+月活跃用户**遍布Telegram Mini Apps\n- **3,600+活跃Mini Apps**在Telegram Mini App目录中上架\n- **400M+ TON钱包**通过Telegram Wallet、Tonkeeper和TON Space创建\n- **42亿美元总锁仓价值**在TON DeFi协议中\n- **每日1200万笔链上交易**在TON主网上\n\n这些数字使TON成为按活跃用户数计算分布最广泛的区块链，超越了Ethereum（包括L2）和Solana。增长的驱动力来自单一因素：**Telegram集成**。Telegram全球拥有950M+月活用户，即使很小的转化率也能产生庞大的数字。\n\n### 为什么选择TON进行支付？\n\n对于构建支付功能应用的开发者，TON相比其他区块链提供三大结构性优势：\n\n1. **分发** — 您的Mini App可在Telegram内被发现，这是用户每天已经在使用的消息平台。无需应用商店审核，无下载障碍，无需安装钱包。\n2. **近零费用** — TON交易费平均为$0.005-0.01，使微支付和应用内购买在经济上可行，无需批处理或L2复杂性。\n3. **亚秒级最终性** — TON的分片架构实现约5秒的出块时间，在1-2个区块内达到实际最终性。用户在10秒内看到确认的支付。\n\n## TON Pay SDK：架构概览\n\nTON Pay SDK是Telegram Mini Apps的官方支付集成库。于2025年第四季度发布，它提供统一的API用于：\n\n- **TON Connect** — 钱包认证\n- **Toncoin支付** — 原生TON转账\n- **Jetton支付** — TRC-20代币标准：USDT、NOT和自定义代币\n- **订阅计费** — 通过预授权智能合约进行循环Jetton收费\n- **支付收据** — 带元数据的链上支付证明\n\nSDK以npm包形式提供（`@tonconnect\u002Fpay-sdk`），支持客户端（浏览器）和服务端（Node.js）使用。\n\n### 前提条件\n\n在集成TON Pay SDK之前，确保您拥有：\n\n1. 具有Mini App功能的已注册Telegram Bot（`@BotFather` → `\u002Fnewapp`）\n2. 用于接收支付的TON钱包地址（商户钱包）\n3. Node.js 20+和TypeScript 5.x开发环境\n4. 对Telegram Mini App API的基本了解（`window.Telegram.WebApp`）\n\n## 第一步：TON Connect钱包认证\n\nTON Connect是将TON钱包连接到dApp和Mini Apps的标准协议。它作为认证层 — 在接受支付之前，您需要知道用户想从哪个钱包支付。\n\n### 设置TON Connect\n\n```typescript\nimport { TonConnect } from \"@tonconnect\u002Fsdk\";\nimport { TonPaySDK } from \"@tonconnect\u002Fpay-sdk\";\n\n\u002F\u002F 使用您的清单初始化TON Connect\nconst tonConnect = new TonConnect({\n  manifestUrl: \"https:\u002F\u002Fyourapp.com\u002Ftonconnect-manifest.json\",\n});\n\n\u002F\u002F 检查用户是否有之前连接的钱包\nconst existingWallet = tonConnect.wallet;\nif (existingWallet) {\n  console.log(\"已连接:\", existingWallet.account.address);\n}\n```\n\n### 钱包连接流程\n\n钱包连接流程因用户的钱包提供商而异：\n\n```typescript\nimport { toUserFriendlyAddress } from \"@tonconnect\u002Fsdk\";\n\nasync function connectWallet(): Promise\u003Cstring> {\n  const walletList = await tonConnect.getWallets();\n\n  \u002F\u002F 对于Telegram Mini Apps，优先使用TON Space（内置）\n  const tonSpace = walletList.find(\n    (w) => w.appName === \"tonspace\"\n  );\n\n  if (tonSpace) {\n    await tonConnect.connect({\n      jsBridgeKey: tonSpace.jsBridgeKey,\n    });\n  } else {\n    const universalLink = tonConnect.connect({\n      universalLink: walletList[0].universalLink,\n      bridgeUrl: walletList[0].bridgeUrl,\n    });\n    window.open(universalLink, \"_blank\");\n  }\n\n  return new Promise((resolve) => {\n    tonConnect.onStatusChange((wallet) => {\n      if (wallet) {\n        const address = toUserFriendlyAddress(\n          wallet.account.address\n        );\n        resolve(address);\n      }\n    });\n  });\n}\n```\n\n### 会话持久化\n\nTON Connect会话在Mini App重启之间保持持久。SDK将会话数据存储在`localStorage`中。在后续启动时，在提示用户之前检查现有连接：\n\n```typescript\nasync function initAuth(): Promise\u003Cstring | null> {\n  await tonConnect.restoreConnection();\n  if (tonConnect.connected && tonConnect.wallet) {\n    return toUserFriendlyAddress(\n      tonConnect.wallet.account.address\n    );\n  }\n  return null;\n}\n```\n\n## 第二步：接受Toncoin支付\n\n钱包连接后，您可以使用TON Pay SDK请求原生TON转账。\n\n### 简单支付请求\n\n```typescript\nimport { TonPaySDK, PaymentRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nconst tonPay = new TonPaySDK({\n  tonConnect,\n  merchantWallet: \"EQD...您的商户地址\",\n  webhookUrl: \"https:\u002F\u002Fyourapi.com\u002Fwebhooks\u002Fton-pay\",\n});\n\nasync function requestPayment(\n  amount: number,\n  orderId: string\n): Promise\u003Cstring> {\n  const payment: PaymentRequest = {\n    amount: amount.toString(),\n    payload: orderId,\n    description: `订单 #${orderId}`,\n  };\n\n  const result = await tonPay.requestPayment(payment);\n\n  if (result.status === \"confirmed\") {\n    return result.txHash;\n  } else if (result.status === \"rejected\") {\n    throw new Error(\"支付被用户拒绝\");\n  } else {\n    throw new Error(`支付失败: ${result.error}`);\n  }\n}\n```\n\n### 服务端支付验证\n\n永远不要仅信任客户端支付确认。在后端验证每笔支付：\n\n```typescript\nimport { TonClient } from \"@ton\u002Fton\";\nimport { Address, fromNano } from \"@ton\u002Fcore\";\n\nconst tonClient = new TonClient({\n  endpoint: \"https:\u002F\u002Ftoncenter.com\u002Fapi\u002Fv2\u002FjsonRPC\",\n  apiKey: process.env.TONCENTER_API_KEY,\n});\n\nasync function verifyPayment(\n  txHash: string,\n  expectedAmount: string,\n  expectedPayload: string,\n  merchantAddress: string\n): Promise\u003Cboolean> {\n  const tx = await tonClient.getTransaction(\n    Address.parse(merchantAddress),\n    txHash\n  );\n\n  if (!tx) return false;\n\n  const receivedAmount = fromNano(tx.inMessage?.value ?? 0n);\n  if (parseFloat(receivedAmount) \u003C parseFloat(expectedAmount)) {\n    return false;\n  }\n\n  const payload = tx.inMessage?.body?.toString() ?? \"\";\n  if (payload !== expectedPayload) {\n    return false;\n  }\n\n  return true;\n}\n```\n\n## 第三步：Jetton（代币）支付\n\nJetton是TON上相当于ERC-20的代币。最常用于支付的Jetton是**TON上的USDT**（Tether），截至2026年3月在TON网络上流通量超过12亿美元。\n\n### 请求Jetton支付\n\n```typescript\nimport { JettonPaymentRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nasync function requestUSDTPayment(\n  amount: number,\n  orderId: string\n): Promise\u003Cstring> {\n  const USDT_MASTER = \"EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs\";\n\n  const payment: JettonPaymentRequest = {\n    jettonMaster: USDT_MASTER,\n    amount: (amount * 1e6).toString(),\n    payload: orderId,\n    description: `$${amount} USDT — 订单 #${orderId}`,\n    forwardTonAmount: \"50000000\",\n  };\n\n  const result = await tonPay.requestJettonPayment(payment);\n\n  if (result.status === \"confirmed\") {\n    return result.txHash;\n  }\n  throw new Error(`Jetton支付失败: ${result.error}`);\n}\n```\n\n## 第四步：订阅计费\n\nTON Pay SDK通过预授权订阅合约支持循环支付。用户批准最大收费金额和频率，您的后端可以在无需额外用户交互的情况下触发收费。\n\n```typescript\nimport { SubscriptionRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nasync function createSubscription(\n  userId: string\n): Promise\u003Cstring> {\n  const subscription: SubscriptionRequest = {\n    jettonMaster: USDT_MASTER,\n    amount: \"4990000\",\n    period: 30 * 24 * 60 * 60,\n    maxCharges: 12,\n    payload: `sub-${userId}`,\n    description: \"高级版 — $4.99\u002F月\",\n  };\n\n  const result = await tonPay.createSubscription(subscription);\n\n  if (result.status === \"active\") {\n    return result.subscriptionAddress;\n  }\n  throw new Error(\"订阅创建失败\");\n}\n```\n\n## Telegram Mini Apps的变现策略\n\n支付只是变现拼图的一部分。以下是成功的Mini Apps如何组合多种收入流：\n\n### 1. Telegram广告平台\n\nTelegram的原生广告平台允许Mini Apps展示广告并以TON赚取收入。集成需要通过`@AdsBot`注册为发布者。\n\n顶级Mini Apps报告在Tier 1国家的激励视频广告**eCPM为$5-15**。\n\n### 2. 通过Telegram Stars进行应用内购买\n\nTelegram Stars是Telegram的内置虚拟货币，自2024年起可用。用户用法币（Apple Pay、Google Pay、信用卡）购买Stars并在Mini Apps中消费。开发者获得70%的Stars收入。\n\n### 3. 加密原生变现\n\n将TON Pay SDK支付与DeFi机制结合：\n\n- **代币门控访问** — 要求持有特定Jetton或SBT（灵魂绑定代币）以访问高级功能\n- **NFT市场** — 销售数字收藏品（TON NFT使用TEP-62标准）\n- **质押奖励** — 让用户在Mini App的智能合约中质押TON或Jetton以获取收益\n- **推荐佣金** — 通过智能合约以Jetton支付推荐奖金\n\n### 变现模式比较\n\n| 模式 | 支付方式 | 开发者份额 | 用户摩擦 | 最适合 |\n|------|----------|-----------|----------|--------|\n| Telegram广告 | 广告展示 | 广告收入的50-70% | 低（被动） | 高DAU免费应用 |\n| Telegram Stars | 法币 → Stars | 70% | 中等（应用内购买） | 数字商品、休闲游戏 |\n| TON Pay（Toncoin） | 加密钱包 | 100%（减去gas） | 较高（需要钱包） | 加密原生用户 |\n| TON Pay（USDT） | 加密钱包 | 100%（减去gas） | 较高（需要钱包） | 稳定价值交易 |\n| 订阅 | 加密钱包 | 100%（减去gas） | 中等（一次性授权） | SaaS、高级内容 |\n\n## 生产部署检查清单\n\n在启动支付功能的Mini App之前：\n\n1. **商户钱包安全** — 使用多签钱包（如TON Safe）接收支付。切勿将单密钥热钱包用于商户资金。\n2. **支付验证** — 始终在服务端验证支付。检查金额、payload和发送者地址。\n3. **错误处理** — 优雅处理网络超时、被拒绝的交易和余额不足。向用户显示清晰的错误消息。\n4. **退款政策** — 实施退款机制。TON交易不可逆，因此退款需要单独的转出交易。\n5. **速率限制** — 保护支付webhook端点免受滥用。验证webhook签名。\n6. **日志记录** — 记录所有支付事件及交易哈希以用于争议解决。\n7. **测试** — 使用TON测试网进行开发。TON Pay SDK通过配置标志支持测试网模式。\n\n## 常见问题\n\n### TON Mini Apps能触达多少用户？\n\nTelegram拥有950M+月活用户。Mini Apps无需安装即可被所有人访问。顶级Mini Apps（Notcoin、Hamster Kombat）已达到3000-4000万用户。分发良好的Mini App的现实可触达市场为100-1000万用户。\n\n### TON支付的交易费是多少？\n\n原生TON转账费用约为0.005-0.01 TON（按当前价格$0.01-0.02）。Jetton转账由于额外的智能合约执行略贵，通常为0.03-0.05 TON（$0.06-0.10）。费用由发送方支付，而非商户。\n\n### 我可以在Telegram Mini App中接受法币支付吗？\n\n可以，通过Telegram Stars（内置）或第三方支付提供商。Telegram Stars使用Telegram的原生支付基础设施，支持Apple Pay、Google Pay和信用卡。\n\n### 接受TON支付需要KYC吗？\n\n对于商户：取决于您的管辖区和交易量。大多数国家在超过一定门槛时需要资金传输或支付处理许可。对于用户：创建TON钱包不需要KYC，但用户购买TON的中心化交易所会执行KYC。\n\n### TON和Ethereum在支付方面有什么区别？\n\nTON提供更低费用（$0.01 vs Ethereum L1上的$0.50-5.00）、更快最终性（10秒 vs 12-15分钟）和内置的Telegram分发。Ethereum拥有更大的DeFi生态系统、更多机构采用和更强的去中心化保证。对于面向消费者的支付应用，TON的Telegram集成是决定性优势。\n\n### 如何处理争议和退款？\n\n区块链支付不可逆 — 没有退款。您必须实施自己的退款和争议解决系统。最佳实践：在将资金释放到商户钱包之前，将资金保留在托管智能合约中进行争议期（24-72小时）。","\u003Ch2 id=\"2026-ton\">2026年的TON生态系统\u003C\u002Fh2>\n\u003Cp>The Open Network（TON）已从一个具有Telegram背景的区块链项目发展成为全球最活跃的加密货币生态系统之一。截至2026年3月，数据令人瞩目：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>500M+月活跃用户\u003C\u002Fstrong>遍布Telegram Mini Apps\u003C\u002Fli>\n\u003Cli>\u003Cstrong>3,600+活跃Mini Apps\u003C\u002Fstrong>在Telegram Mini App目录中上架\u003C\u002Fli>\n\u003Cli>\u003Cstrong>400M+ TON钱包\u003C\u002Fstrong>通过Telegram Wallet、Tonkeeper和TON Space创建\u003C\u002Fli>\n\u003Cli>\u003Cstrong>42亿美元总锁仓价值\u003C\u002Fstrong>在TON DeFi协议中\u003C\u002Fli>\n\u003Cli>\u003Cstrong>每日1200万笔链上交易\u003C\u002Fstrong>在TON主网上\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>这些数字使TON成为按活跃用户数计算分布最广泛的区块链，超越了Ethereum（包括L2）和Solana。增长的驱动力来自单一因素：\u003Cstrong>Telegram集成\u003C\u002Fstrong>。Telegram全球拥有950M+月活用户，即使很小的转化率也能产生庞大的数字。\u003C\u002Fp>\n\u003Ch3>为什么选择TON进行支付？\u003C\u002Fh3>\n\u003Cp>对于构建支付功能应用的开发者，TON相比其他区块链提供三大结构性优势：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>分发\u003C\u002Fstrong> — 您的Mini App可在Telegram内被发现，这是用户每天已经在使用的消息平台。无需应用商店审核，无下载障碍，无需安装钱包。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>近零费用\u003C\u002Fstrong> — TON交易费平均为$0.005-0.01，使微支付和应用内购买在经济上可行，无需批处理或L2复杂性。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>亚秒级最终性\u003C\u002Fstrong> — TON的分片架构实现约5秒的出块时间，在1-2个区块内达到实际最终性。用户在10秒内看到确认的支付。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"ton-pay-sdk\">TON Pay SDK：架构概览\u003C\u002Fh2>\n\u003Cp>TON Pay SDK是Telegram Mini Apps的官方支付集成库。于2025年第四季度发布，它提供统一的API用于：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>TON Connect\u003C\u002Fstrong> — 钱包认证\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Toncoin支付\u003C\u002Fstrong> — 原生TON转账\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Jetton支付\u003C\u002Fstrong> — TRC-20代币标准：USDT、NOT和自定义代币\u003C\u002Fli>\n\u003Cli>\u003Cstrong>订阅计费\u003C\u002Fstrong> — 通过预授权智能合约进行循环Jetton收费\u003C\u002Fli>\n\u003Cli>\u003Cstrong>支付收据\u003C\u002Fstrong> — 带元数据的链上支付证明\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>SDK以npm包形式提供（\u003Ccode>@tonconnect\u002Fpay-sdk\u003C\u002Fcode>），支持客户端（浏览器）和服务端（Node.js）使用。\u003C\u002Fp>\n\u003Ch3>前提条件\u003C\u002Fh3>\n\u003Cp>在集成TON Pay SDK之前，确保您拥有：\u003C\u002Fp>\n\u003Col>\n\u003Cli>具有Mini App功能的已注册Telegram Bot（\u003Ccode>@BotFather\u003C\u002Fcode> → \u003Ccode>\u002Fnewapp\u003C\u002Fcode>）\u003C\u002Fli>\n\u003Cli>用于接收支付的TON钱包地址（商户钱包）\u003C\u002Fli>\n\u003Cli>Node.js 20+和TypeScript 5.x开发环境\u003C\u002Fli>\n\u003Cli>对Telegram Mini App API的基本了解（\u003Ccode>window.Telegram.WebApp\u003C\u002Fcode>）\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"ton-connect\">第一步：TON Connect钱包认证\u003C\u002Fh2>\n\u003Cp>TON Connect是将TON钱包连接到dApp和Mini Apps的标准协议。它作为认证层 — 在接受支付之前，您需要知道用户想从哪个钱包支付。\u003C\u002Fp>\n\u003Ch3>设置TON Connect\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { TonConnect } from \"@tonconnect\u002Fsdk\";\nimport { TonPaySDK } from \"@tonconnect\u002Fpay-sdk\";\n\n\u002F\u002F 使用您的清单初始化TON Connect\nconst tonConnect = new TonConnect({\n  manifestUrl: \"https:\u002F\u002Fyourapp.com\u002Ftonconnect-manifest.json\",\n});\n\n\u002F\u002F 检查用户是否有之前连接的钱包\nconst existingWallet = tonConnect.wallet;\nif (existingWallet) {\n  console.log(\"已连接:\", existingWallet.account.address);\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>钱包连接流程\u003C\u002Fh3>\n\u003Cp>钱包连接流程因用户的钱包提供商而异：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { toUserFriendlyAddress } from \"@tonconnect\u002Fsdk\";\n\nasync function connectWallet(): Promise&lt;string&gt; {\n  const walletList = await tonConnect.getWallets();\n\n  \u002F\u002F 对于Telegram Mini Apps，优先使用TON Space（内置）\n  const tonSpace = walletList.find(\n    (w) =&gt; w.appName === \"tonspace\"\n  );\n\n  if (tonSpace) {\n    await tonConnect.connect({\n      jsBridgeKey: tonSpace.jsBridgeKey,\n    });\n  } else {\n    const universalLink = tonConnect.connect({\n      universalLink: walletList[0].universalLink,\n      bridgeUrl: walletList[0].bridgeUrl,\n    });\n    window.open(universalLink, \"_blank\");\n  }\n\n  return new Promise((resolve) =&gt; {\n    tonConnect.onStatusChange((wallet) =&gt; {\n      if (wallet) {\n        const address = toUserFriendlyAddress(\n          wallet.account.address\n        );\n        resolve(address);\n      }\n    });\n  });\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>会话持久化\u003C\u002Fh3>\n\u003Cp>TON Connect会话在Mini App重启之间保持持久。SDK将会话数据存储在\u003Ccode>localStorage\u003C\u002Fcode>中。在后续启动时，在提示用户之前检查现有连接：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-typescript\">async function initAuth(): Promise&lt;string | null&gt; {\n  await tonConnect.restoreConnection();\n  if (tonConnect.connected &amp;&amp; tonConnect.wallet) {\n    return toUserFriendlyAddress(\n      tonConnect.wallet.account.address\n    );\n  }\n  return null;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"toncoin\">第二步：接受Toncoin支付\u003C\u002Fh2>\n\u003Cp>钱包连接后，您可以使用TON Pay SDK请求原生TON转账。\u003C\u002Fp>\n\u003Ch3>简单支付请求\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { TonPaySDK, PaymentRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nconst tonPay = new TonPaySDK({\n  tonConnect,\n  merchantWallet: \"EQD...您的商户地址\",\n  webhookUrl: \"https:\u002F\u002Fyourapi.com\u002Fwebhooks\u002Fton-pay\",\n});\n\nasync function requestPayment(\n  amount: number,\n  orderId: string\n): Promise&lt;string&gt; {\n  const payment: PaymentRequest = {\n    amount: amount.toString(),\n    payload: orderId,\n    description: `订单 #${orderId}`,\n  };\n\n  const result = await tonPay.requestPayment(payment);\n\n  if (result.status === \"confirmed\") {\n    return result.txHash;\n  } else if (result.status === \"rejected\") {\n    throw new Error(\"支付被用户拒绝\");\n  } else {\n    throw new Error(`支付失败: ${result.error}`);\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>服务端支付验证\u003C\u002Fh3>\n\u003Cp>永远不要仅信任客户端支付确认。在后端验证每笔支付：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { TonClient } from \"@ton\u002Fton\";\nimport { Address, fromNano } from \"@ton\u002Fcore\";\n\nconst tonClient = new TonClient({\n  endpoint: \"https:\u002F\u002Ftoncenter.com\u002Fapi\u002Fv2\u002FjsonRPC\",\n  apiKey: process.env.TONCENTER_API_KEY,\n});\n\nasync function verifyPayment(\n  txHash: string,\n  expectedAmount: string,\n  expectedPayload: string,\n  merchantAddress: string\n): Promise&lt;boolean&gt; {\n  const tx = await tonClient.getTransaction(\n    Address.parse(merchantAddress),\n    txHash\n  );\n\n  if (!tx) return false;\n\n  const receivedAmount = fromNano(tx.inMessage?.value ?? 0n);\n  if (parseFloat(receivedAmount) &lt; parseFloat(expectedAmount)) {\n    return false;\n  }\n\n  const payload = tx.inMessage?.body?.toString() ?? \"\";\n  if (payload !== expectedPayload) {\n    return false;\n  }\n\n  return true;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"jetton\">第三步：Jetton（代币）支付\u003C\u002Fh2>\n\u003Cp>Jetton是TON上相当于ERC-20的代币。最常用于支付的Jetton是\u003Cstrong>TON上的USDT\u003C\u002Fstrong>（Tether），截至2026年3月在TON网络上流通量超过12亿美元。\u003C\u002Fp>\n\u003Ch3>请求Jetton支付\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { JettonPaymentRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nasync function requestUSDTPayment(\n  amount: number,\n  orderId: string\n): Promise&lt;string&gt; {\n  const USDT_MASTER = \"EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs\";\n\n  const payment: JettonPaymentRequest = {\n    jettonMaster: USDT_MASTER,\n    amount: (amount * 1e6).toString(),\n    payload: orderId,\n    description: `$${amount} USDT — 订单 #${orderId}`,\n    forwardTonAmount: \"50000000\",\n  };\n\n  const result = await tonPay.requestJettonPayment(payment);\n\n  if (result.status === \"confirmed\") {\n    return result.txHash;\n  }\n  throw new Error(`Jetton支付失败: ${result.error}`);\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"\">第四步：订阅计费\u003C\u002Fh2>\n\u003Cp>TON Pay SDK通过预授权订阅合约支持循环支付。用户批准最大收费金额和频率，您的后端可以在无需额外用户交互的情况下触发收费。\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-typescript\">import { SubscriptionRequest } from \"@tonconnect\u002Fpay-sdk\";\n\nasync function createSubscription(\n  userId: string\n): Promise&lt;string&gt; {\n  const subscription: SubscriptionRequest = {\n    jettonMaster: USDT_MASTER,\n    amount: \"4990000\",\n    period: 30 * 24 * 60 * 60,\n    maxCharges: 12,\n    payload: `sub-${userId}`,\n    description: \"高级版 — $4.99\u002F月\",\n  };\n\n  const result = await tonPay.createSubscription(subscription);\n\n  if (result.status === \"active\") {\n    return result.subscriptionAddress;\n  }\n  throw new Error(\"订阅创建失败\");\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"telegram-mini-apps\">Telegram Mini Apps的变现策略\u003C\u002Fh2>\n\u003Cp>支付只是变现拼图的一部分。以下是成功的Mini Apps如何组合多种收入流：\u003C\u002Fp>\n\u003Ch3>1. Telegram广告平台\u003C\u002Fh3>\n\u003Cp>Telegram的原生广告平台允许Mini Apps展示广告并以TON赚取收入。集成需要通过\u003Ccode>@AdsBot\u003C\u002Fcode>注册为发布者。\u003C\u002Fp>\n\u003Cp>顶级Mini Apps报告在Tier 1国家的激励视频广告\u003Cstrong>eCPM为$5-15\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Ch3>2. 通过Telegram Stars进行应用内购买\u003C\u002Fh3>\n\u003Cp>Telegram Stars是Telegram的内置虚拟货币，自2024年起可用。用户用法币（Apple Pay、Google Pay、信用卡）购买Stars并在Mini Apps中消费。开发者获得70%的Stars收入。\u003C\u002Fp>\n\u003Ch3>3. 加密原生变现\u003C\u002Fh3>\n\u003Cp>将TON Pay SDK支付与DeFi机制结合：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>代币门控访问\u003C\u002Fstrong> — 要求持有特定Jetton或SBT（灵魂绑定代币）以访问高级功能\u003C\u002Fli>\n\u003Cli>\u003Cstrong>NFT市场\u003C\u002Fstrong> — 销售数字收藏品（TON NFT使用TEP-62标准）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>质押奖励\u003C\u002Fstrong> — 让用户在Mini App的智能合约中质押TON或Jetton以获取收益\u003C\u002Fli>\n\u003Cli>\u003Cstrong>推荐佣金\u003C\u002Fstrong> — 通过智能合约以Jetton支付推荐奖金\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>变现模式比较\u003C\u002Fh3>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>模式\u003C\u002Fth>\u003Cth>支付方式\u003C\u002Fth>\u003Cth>开发者份额\u003C\u002Fth>\u003Cth>用户摩擦\u003C\u002Fth>\u003Cth>最适合\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>Telegram广告\u003C\u002Ftd>\u003Ctd>广告展示\u003C\u002Ftd>\u003Ctd>广告收入的50-70%\u003C\u002Ftd>\u003Ctd>低（被动）\u003C\u002Ftd>\u003Ctd>高DAU免费应用\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Telegram Stars\u003C\u002Ftd>\u003Ctd>法币 → Stars\u003C\u002Ftd>\u003Ctd>70%\u003C\u002Ftd>\u003Ctd>中等（应用内购买）\u003C\u002Ftd>\u003Ctd>数字商品、休闲游戏\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>TON Pay（Toncoin）\u003C\u002Ftd>\u003Ctd>加密钱包\u003C\u002Ftd>\u003Ctd>100%（减去gas）\u003C\u002Ftd>\u003Ctd>较高（需要钱包）\u003C\u002Ftd>\u003Ctd>加密原生用户\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>TON Pay（USDT）\u003C\u002Ftd>\u003Ctd>加密钱包\u003C\u002Ftd>\u003Ctd>100%（减去gas）\u003C\u002Ftd>\u003Ctd>较高（需要钱包）\u003C\u002Ftd>\u003Ctd>稳定价值交易\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>订阅\u003C\u002Ftd>\u003Ctd>加密钱包\u003C\u002Ftd>\u003Ctd>100%（减去gas）\u003C\u002Ftd>\u003Ctd>中等（一次性授权）\u003C\u002Ftd>\u003Ctd>SaaS、高级内容\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch2 id=\"\">生产部署检查清单\u003C\u002Fh2>\n\u003Cp>在启动支付功能的Mini App之前：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>商户钱包安全\u003C\u002Fstrong> — 使用多签钱包（如TON Safe）接收支付。切勿将单密钥热钱包用于商户资金。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>支付验证\u003C\u002Fstrong> — 始终在服务端验证支付。检查金额、payload和发送者地址。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>错误处理\u003C\u002Fstrong> — 优雅处理网络超时、被拒绝的交易和余额不足。向用户显示清晰的错误消息。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>退款政策\u003C\u002Fstrong> — 实施退款机制。TON交易不可逆，因此退款需要单独的转出交易。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>速率限制\u003C\u002Fstrong> — 保护支付webhook端点免受滥用。验证webhook签名。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>日志记录\u003C\u002Fstrong> — 记录所有支付事件及交易哈希以用于争议解决。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>测试\u003C\u002Fstrong> — 使用TON测试网进行开发。TON Pay SDK通过配置标志支持测试网模式。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"\">常见问题\u003C\u002Fh2>\n\u003Ch3 id=\"ton-mini-apps\">TON Mini Apps能触达多少用户？\u003C\u002Fh3>\n\u003Cp>Telegram拥有950M+月活用户。Mini Apps无需安装即可被所有人访问。顶级Mini Apps（Notcoin、Hamster Kombat）已达到3000-4000万用户。分发良好的Mini App的现实可触达市场为100-1000万用户。\u003C\u002Fp>\n\u003Ch3 id=\"ton\">TON支付的交易费是多少？\u003C\u002Fh3>\n\u003Cp>原生TON转账费用约为0.005-0.01 TON（按当前价格\u003Cspan class=\"math math-inline\">0.01-0.02）。Jetton转账由于额外的智能合约执行略贵，通常为0.03-0.05 TON（\u003C\u002Fspan>0.06-0.10）。费用由发送方支付，而非商户。\u003C\u002Fp>\n\u003Ch3 id=\"telegram-mini-app\">我可以在Telegram Mini App中接受法币支付吗？\u003C\u002Fh3>\n\u003Cp>可以，通过Telegram Stars（内置）或第三方支付提供商。Telegram Stars使用Telegram的原生支付基础设施，支持Apple Pay、Google Pay和信用卡。\u003C\u002Fp>\n\u003Ch3 id=\"ton-kyc\">接受TON支付需要KYC吗？\u003C\u002Fh3>\n\u003Cp>对于商户：取决于您的管辖区和交易量。大多数国家在超过一定门槛时需要资金传输或支付处理许可。对于用户：创建TON钱包不需要KYC，但用户购买TON的中心化交易所会执行KYC。\u003C\u002Fp>\n\u003Ch3 id=\"ton-ethereum\">TON和Ethereum在支付方面有什么区别？\u003C\u002Fh3>\n\u003Cp>TON提供更低费用（\u003Cspan class=\"math math-inline\">0.01 vs Ethereum L1上的\u003C\u002Fspan>0.50-5.00）、更快最终性（10秒 vs 12-15分钟）和内置的Telegram分发。Ethereum拥有更大的DeFi生态系统、更多机构采用和更强的去中心化保证。对于面向消费者的支付应用，TON的Telegram集成是决定性优势。\u003C\u002Fp>\n\u003Ch3 id=\"\">如何处理争议和退款？\u003C\u002Fh3>\n\u003Cp>区块链支付不可逆 — 没有退款。您必须实施自己的退款和争议解决系统。最佳实践：在将资金释放到商户钱包之前，将资金保留在托管智能合约中进行争议期（24-72小时）。\u003C\u002Fp>\n","zh","b0000000-0000-0000-0000-000000000001",true,"2026-03-28T10:44:44.516060Z","2026年在TON上构建：Telegram Mini Apps中的加密支付","将TON Pay SDK集成到Telegram Mini Apps。分步指南：TON Connect认证、Toncoin和Jetton支付、订阅和变现策略。","TON Pay SDK Telegram Mini Apps",null,"index, follow",[22,27,31],{"id":23,"name":24,"slug":25,"created_at":26},"c0000000-0000-0000-0000-000000000015","TON","ton","2026-03-28T10:44:21.513630Z",{"id":28,"name":29,"slug":30,"created_at":26},"c0000000-0000-0000-0000-000000000010","Telegram","telegram",{"id":32,"name":33,"slug":34,"created_at":26},"c0000000-0000-0000-0000-000000000009","Web3","web3",[36,43,49],{"id":37,"title":38,"slug":39,"excerpt":40,"locale":12,"category_name":41,"published_at":42},"d0000000-0000-0000-0000-000000000599","Ethereum互操作层：55+个L2如何成为一条链","ethereum-hucaozuoceng-55-l2-chengwei-yitiao-lian","Ethereum有55+个Layer 2 rollup，碎片化了流动性和用户体验。Ethereum互操作层 — 结合跨rollup消息传递、共享排序器和based rollup — 旨在将它们统一为一个可组合的网络。","区块链","2026-03-28T10:44:44.539584Z",{"id":44,"title":45,"slug":46,"excerpt":47,"locale":12,"category_name":41,"published_at":48},"d0000000-0000-0000-0000-000000000598","ZK证明超越Rollups：Ethereum上的可验证AI推理","zk-zhengming-chaoyue-rollups-ethereum-keyanzheng-ai-tuili","零知识证明不再仅仅是扩容工具。在2026年，zkML实现了链上可验证的AI推理，ZK协处理器将繁重计算移至链下并在链上验证，而SP1和Jolt等新证明系统使其变得实用。","2026-03-28T10:44:44.534954Z",{"id":50,"title":51,"slug":52,"excerpt":53,"locale":12,"category_name":41,"published_at":54},"d0000000-0000-0000-0000-000000000575","EIP-7702实战：Pectra之后构建智能账户流程","eip-7702-shizhan-pectra-zhihou-goujian-zhineng-zhanghu-liucheng","EIP-7702允许任何Ethereum EOA在单笔交易中临时充当智能合约。以下是如何使用新的账户抽象原语实现批量交易、gas赞助和社交恢复。","2026-03-28T10:44:42.997040Z",{"id":13,"name":56,"slug":57,"bio":58,"photo_url":19,"linkedin":19,"role":59,"created_at":60,"updated_at":60},"Open Soft Team","open-soft-team","The engineering team at Open Soft, building premium software solutions from Bali, Indonesia.","Engineering Team","2026-03-28T08:31:22.226811Z"]