Official TON Pay

Official TON Pay

富途学院

🐼 富途学院| TON × AI × Web3



频道入口:@futuxy






一句话流程



用户在小程序 / 机器人里下单 → 后端用 TON Pay 创建支付 → 用户用 Tonkeeper / Wallet 等钱包签名 → TON Pay 监听链上结果 → Webhook 通知你的服务器 → 自动发货。


老手看到这里基本就懂了:TON Pay 不是一个“收款地址生成器”,而是一套订单支付 + 链上确认 + 回调通知的收款基础设施。



为什么小程序和机器人需要 TON Pay?



很多 Telegram Mini App 和 Bot 迟早都会遇到一个问题:怎么让用户在 TON 上付款,并且付款后自动给权益?



比如:




  • AI Bot:用户充值 TON,获得对话次数 / 积分 / 会员。

  • 工具类小程序:用户支付 TON,解锁高级功能。

  • 付费社群:用户支付 TON,自动进入频道或群组。

  • 游戏 / 抽奖 / Mini App:用户付费购买道具、门票、次数。

  • 电商订单:用户用 TON 或 Jetton 支付,系统自动确认订单。



如果你只是贴一个钱包地址,让用户转账后发截图,那会有三个问题:




  • 不好识别订单:几十个人同时付款,谁付的是哪一单?

  • 不好自动发货:你要人工查交易哈希,效率很低。

  • 容易出错:金额、备注、网络、地址,任何一步错了都麻烦。



TON Pay 解决的就是这件事:把链上付款变成一个可追踪的订单流程。



TON Pay 是什么?



根据 TON 官方文档,TON Pay SDK 是一套用于 TON 区块链支付集成的开发工具,支持 Web 应用、Telegram Mini Apps、后端服务和机器人。



它做三件核心工作:




  • 创建支付:一次性转账、订阅、带 reference / memo 的订单付款。

  • 追踪状态:监听交易确认、处理 pending / success / error。

  • 通知业务系统:通过 Webhook 把支付结果发回你的后端。



支持的钱包也比较全:Tonkeeper、MyTonWallet、Tonhub、OpenMask、TON Wallet、Wallet bot 等,底层走 TON Connect。



最适合的产品形态



1)Telegram Mini App 收款



这是最顺的形态。用户在 Mini App 里点“支付”,前端展示 TON Pay Button,钱包弹出签名,支付完成后页面自动变成成功状态。



2)Telegram Bot 收款



Bot 本身不能替用户签名付款。正确做法是:Bot 创建订单,然后发一个按钮,把用户带到 Mini App / Web checkout 页面完成支付。支付成功后,后端再通知 Bot 给用户开权限。



3)AI Agent / 自动化服务



比如用户给 AI Bot 充值 5 TON,系统记录 reference,确认成功后给用户增加 500 次调用额度。这类场景最需要自动回调,不能靠人工查账。



开发者接入思路



前端负责“让用户签名付款”,后端负责“创建订单、保存 reference、确认结果、发货”。


最小流程可以拆成 5 步:




  • 01:准备 TON Connect manifest,让钱包知道你的应用是谁。

  • 02:前端接入 TonConnectUIProvider。

  • 03:用 TON Pay 创建转账 message。

  • 04:用户在钱包里确认并签名。

  • 05:用 reference 查询状态,或通过 Webhook 接收支付完成通知。



前端怎么做?



官方推荐用 TON Pay 的 UI 组件,尤其是 React 项目里可以直接使用 TonPayButton。



它帮你处理这些麻烦事:




  • 连接钱包

  • 发起 TON Connect 交易

  • 处理 loading 状态

  • 处理用户取消 / 钱包断开 / 重复提交

  • 把交易结果交给后续状态查询



也就是说,你不用自己从 0 写钱包连接和交易签名 UI。



后端一定要保存什么?



如果是机器人、小程序、电商订单,后端至少要保存这些字段:




  • user_id:Telegram 用户 ID 或你系统里的用户 ID。

  • order_id:你的业务订单号。

  • amount:应收金额。

  • asset:收 TON 还是 Jetton。

  • recipientAddr:你的收款钱包地址。

  • reference:TON Pay 返回的追踪 ID。

  • status:pending / success / error。

  • txHash:成功后保存链上交易哈希。



重点:不要只相信前端说“我付了”。必须以后端查询或 Webhook 的支付结果为准。



Webhook 才是自动发货的关键



TON Pay 支持 Webhook。支付在链上完成并被 TON Pay 索引后,会向你的服务器发送 POST 请求。



一个标准处理逻辑是:




  • 收到 transfer.completed 事件。

  • 验证请求签名。

  • 检查 data.status 是 success 还是 failed。

  • 按 reference 找到你的订单。

  • 确认金额和资产无误。

  • 更新订单状态,给用户发货 / 开通会员 / 增加积分。

  • 返回 2xx,告诉 TON Pay 已收到。



Webhook 的好处是:用户付款后不用刷新页面,Bot 也不用人工查账,系统可以自动处理。



小程序 / Bot 的推荐架构



Bot 负责触达用户,Mini App 负责支付页面,后端负责订单和回调。


可以这样设计:




  • Bot:用户点击“充值”或“开会员”。

  • 后端:创建订单,生成 order_id。

  • Mini App:展示套餐和 TON Pay Button。

  • 钱包:用户确认签名并支付。

  • TON Pay:追踪链上状态。

  • Webhook:通知你的后端支付成功。

  • Bot:给用户发成功通知,发放权益。



4 个必须避开的坑



1)不要用“固定收款地址 + 截图”当正式支付系统。


这样无法稳定识别订单,也很难自动化。



2)不要只信前端回调。


用户点了钱包确认,不等于链上最终成功。要查 reference 状态,或者等 Webhook。



3)不要漏掉 reference。


reference 是订单和链上付款之间的桥。没保存 reference,后面很难追踪。



4)生产环境别忘了改 mainnet。


文档示例通常用 testnet。上线前要确认 chain、收款地址、API key、Webhook URL 全部是生产配置。



一句话总结



如果你的小程序、机器人、AI Bot 想收 TON,不要让用户截图转账。用 TON Pay:创建订单、钱包签名、链上确认、Webhook 自动发货。


这才是 Telegram 生态里更像“支付系统”的收款方式。






参考资料:TON Pay SDK overview、TON Pay Quick start、TON Pay Webhooks






🐼 富途学院| TON × AI × Web3



频道入口:@futuxy



每天 5 分钟,讲清一个能直接上手的 TON 工具。觉得有用,转给那个正在给 Bot 做收款的朋友。

Report Page