Telegram Bot Telegraf:付款成功后如何发送消息

时间:2020-03-14 13:05:52

标签: telegram-bot telegraf

成功付款后,我尝试发送一条消息/照片消息,但引发以下错误:

Error: Telegraf: "replyWithPhoto" isn't available for "pre_checkout_query::"

我的代码如下:

bot.on('pre_checkout_query', (ctx) => {
    ctx.answerPreCheckoutQuery(true)
    .then(() => {
        let photo = //setup photo...
        let options = //setup caption and image url...
        ctx.replyWithPhoto(photo, options)
     })
})

通过Telegram Bot API成功付款后,是否绝对没有任何后续消息?

编辑:

bot.on('pre_checkout_query', (ctx) => {
    let data = ctx.update.pre_checkout_query

    ctx.answerPreCheckoutQuery(true)
    .then(() => {
        let message = 'Thanks for the purchase!'
        bot.telegram.sendMessage(data.from.id, message)
    })
})

2 个答案:

答案 0 :(得分:0)

您可以使用Telegraf.telegram.sendMessage(chatId, text)进行处理,也可以使用Telegraf.telegram.sendPhoto(chatId, photo)来回复照片

答案 1 :(得分:0)

借助此post,设法弄清楚了该怎么做。

要在“您刚刚成功将$ XXX转移到...”标语之后发送消息,我们需要收听successful_payment消息。这是实现:

bot.on('pre_checkout_query', (ctx) => {
    ctx.answerPreCheckoutQuery(true)
})

bot.on('message', (ctx) => {
    if (ctx.update.message.successful_payment != undefined) {
        ctx.reply('Thanks for the purchase!')
    } else {
        // Handle other message types, subtypes
    }
})