You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Televerse中监听Telegram Bot的SuccessfulPayment消息?

如何在Televerse中监听SuccessfulPayment并获取对象

在Televerse中,Telegram发送的SuccessfulPayment对象会被包含在消息更新的Message结构里,你可以通过以下步骤监听并获取它:

  1. 监听消息更新并判断支付对象
    使用onMessage回调捕获所有消息,然后检查消息中是否包含successfulPayment字段:
import 'package:televerse/televerse.dart';

void main() {
  final bot = Bot("你的机器人令牌");

  bot.onMessage((ctx) {
    // 提取SuccessfulPayment对象
    final successfulPayment = ctx.message.successfulPayment;
    
    if (successfulPayment != null) {
      // 处理支付成功逻辑
      print("支付完成,订单负载: ${successfulPayment.invoicePayload}");
      print("支付金额: ${successfulPayment.totalAmount} ${successfulPayment.currency}");
      
      // 可按需访问其他字段,比如配送选项ID、支付提供商等
      if (successfulPayment.shippingOptionId != null) {
        print("选中的配送选项ID: ${successfulPayment.shippingOptionId}");
      }
    }
  });

  bot.start();
}
  1. 核心说明
    • ctx.message.successfulPayment就是Telegram返回的支付成功对象,仅当用户完成支付后该字段才会非空。
    • 你可以直接访问该对象的所有属性,比如invoicePayload(创建发票时传入的自定义订单数据)、totalAmount(最小货币单位计算的总金额,如人民币分)、currency(ISO 4217货币代码)等。

无论你的机器人采用长轮询还是Webhook模式,逻辑完全一致——Televerse会自动解析更新并将SuccessfulPayment挂载到Message对象中。

内容的提问来源于stack exchange,提问作者user23142841

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 13:19:51