Задать вопрос
alexjet73
@alexjet73

Как принять уведомление об оплате звёздами в телеграм на NodeJS?

Собственно сабж. Использую npm пакет node-telegram-bot-api и настроен он на вебхук. В mini app фронт через бэкенд получает инвойс на XTR и потом вызывает метод openInvoice. Не могу до конца разобраться как теперь получить уведомление от телеграма в бот об успешной оплате, как обычно практикуется в подобных системах оплаты, чтобы безопасно получить всё об статусе оплаты и деталях оплаты.
Может кто уже реализовывал подобное и может объяснить?! Заранее благодарю :)

const bot = new TelegramBot(token, { webHook: true });
bot.on('webhook_error', (error) => {
    console.log(error.code);  // => 'EPARSE'
});
bot.onText(/\/start/, (msg) => {
    const chatId = msg.chat.id;
    let welcomeMessage = `Привет, ${msg.from.first_name || 'пользователь'}!`;
    bot.sendMessage(chatId, welcomeMessage);
});

router.post('/tgbot', (req, res) => {
    bot.processUpdate(req.body); 
    res.sendStatus(200);
});
  • Вопрос задан
  • 51 просмотр
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 2
xottsy
@xottsy
очень узкое направление, сомневаюсь что тут кто то ответит на такой вопрос. Лучше посмотри документацию сначала своей библиотеки, если ответа не найдешь, то глянь api самого тг
Ответ написан
Комментировать
alexjet73
@alexjet73 Автор вопроса
Вроде вот такой вариант должен быть рабочим, не проверял правда (еще не понял как проводить тестовые платежи звездами), но вроде всё по правилам описанным в доках.
bot.on('message', (msg) => {
    if (msg.successful_payment) {
        // Платёж прошёл успешно
        const payload = msg.successful_payment.invoice_payload;
        const userId = msg.from.id;
        // Здесь можно проверить payload, userId и сохранить информацию о платеже в БД
    }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
OSZAR »