Telegram Bot Telegraf: как отправить сообщение после успешной оплаты - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь отправить сообщение / фотографию после успешной оплаты, но мне выдается следующая ошибка:

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 голосов
/ 18 марта 2020

Нам удалось выяснить, как это сделать, благодаря этой публикации .

Чтобы отправить сообщение после баннера "Вы только что успешно перевели $ 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
    }
})
0 голосов
/ 18 марта 2020

Вы можете использовать Telegraf.telegram.sendMessage(chatId, text) для обработки этого или Telegraf.telegram.sendPhoto(chatId, photo) для ответа с фотографией

...