Уведомления эквайринга Т-Банка в Telegram: сообщение о каждом оплаченном заказе

Уведомления интернет-эквайринга Т-Банка (бывший Тинькофф) в Telegram в nana800 работают так: банк отправляет статус платежа на адрес триггера «webhook», блок «webhook response» отвечает ему OK, а «Telegram message send» пишет вам об оплаченном заказе. Нужны свой терминал эквайринга и бот от @BotFather, код и сервер не нужны. Сообщение об оплате - это два запуска базового блока.

Собрать в конструкторе

Что можно автоматизировать

  • Сообщение о каждом оплаченном заказе: статус CONFIRMED, номер заказа OrderId, сумма и маска карты Pan
  • При двухстадийной оплате узнавать о статусе AUTHORIZED: деньги заморожены на карте, пора подтвердить или отменить заказ
  • Получать уведомления о платежах, созданных блоком «T-Bank Acquiring», не меняя настройки терминала: адрес вебхука ставится в поле «Куда прислать уведомление об оплате»
  • Писать сумму сразу в рублях: операция get_payment_state блока «T-Bank Acquiring» возвращает amount_rub и заодно подтверждает оплату
  • Разводить оплаты нескольких магазинов по разным чатам: у каждого терминала свой TerminalKey в уведомлении

Как настроить

  1. 1

    Создайте схему и ответ для банка

    Создайте схему с триггером «webhook»: метод POST, путь, например /tbank-pay. Сразу за ним поставьте бесплатный блок «webhook response»: в body raw впишите OK заглавными латинскими буквами, status оставьте OK. Т-Банк ждёт ответа недолго, при одностадийной оплате 10 секунд, поэтому ответ стоит первым.

  2. 2

    Передайте адрес вебхука Т-Банку

    Включите схему и скопируйте адрес вебхука на странице «API». Для платежей сайта впишите его как адрес уведомлений в настройках терминала в личном кабинете Т-Банка. Платежам, которые создаёт блок «T-Bank Acquiring», хватит поля «Куда прислать уведомление об оплате»: адрес из запроса на создание платежа важнее адреса из настроек.

  3. 3

    Оставьте сообщение только об оплате

    Об одной оплате Т-Банк присылает несколько уведомлений, например AUTHORIZED и затем CONFIRMED. Поставьте после ответа бесплатный блок «condition»: Status равно CONFIRMED. Так банк получит OK на каждое уведомление, а сообщение в Telegram придёт одно, когда деньги списаны.

  4. 4

    Напишите текст сообщения

    К ветке, где условие верно, подключите «Telegram message send» с токеном бота и ID чата. В body уведомления лежат OrderId - номер заказа, PaymentId - номер платежа в Т-Банке, Amount - сумма в копейках (150000 означает полторы тысячи рублей) и Pan - маска карты. Оформление plain_text не ломается на любых символах.

  5. 5

    Добавьте сверку оплаты и сумму в рублях

    Между «condition» и Telegram можно поставить блок «T-Bank Acquiring» с операцией get_payment_state и PaymentId из уведомления. Он вернёт amount_rub, сумму в рублях, и is_paid, равный true только у настоящей оплаты: проверьте его вторым «condition» перед отправкой. Это ещё два запуска, а включённая схема стоит 0,42 ₽ в час.

Сколько стоит

Запуск блоков Т-Банк эквайринг стоит 0,20 ₽, блоков Telegram - 0,10 ₽. Каждый месяц баланс бесплатно пополняется до 350 ₽, включённая схема стоит 0,42 ₽ в час.

Сервисы в связке

  • Т-Банк эквайринг

    Эквайринг Т-Банка без программирования: ссылки на оплату, проверка оплаты, списание и возвраты прямо из схемы. Бесплатный баланс каждый месяц, карта не нужна.

  • Telegram

    Соберите Telegram-бота без кода: ответы на сообщения, кнопки, заявки и уведомления в личку, группу или канал. Бесплатный баланс каждый месяц, карта не нужна.

Похожие связки

  • amoCRM + Telegram

    Новые сделки и смена этапа в amoCRM приходят сообщением в Telegram: в личку или в рабочую группу. Без кода и своего сервера, бесплатный баланс каждый месяц.

  • Битрикс24 + Telegram

    Новые лиды, сделки и задачи из Битрикс24 приходят сообщением в Telegram: в личку или в рабочую группу. Без кода и своего сервера, бесплатный баланс каждый месяц.

  • CloudPayments + Telegram

    CloudPayments сообщает об оплате, отказе и возврате, а бот пишет в Telegram сумму, номер заказа и причину отказа. Без кода, бесплатный баланс каждый месяц.

  • Email + Telegram

    Пересылайте новые письма из Яндекс Почты, Mail.ru или корпоративной почты в Telegram без кода: отправитель, тема и текст. Бесплатный баланс каждый месяц, карта не нужна.

  • Gmail + Telegram

    Получайте уведомления о новых письмах Gmail в Telegram: отправитель, тема и текст письма в личке или рабочей группе. Бесплатный баланс каждый месяц, карта не нужна.

  • HTTP-запрос + Telegram

    Проверяйте сайт или API по расписанию и получайте сообщение в Telegram, если он не отвечает или вернул ошибку. Без кода и своего сервера, бесплатный старт.

Частые вопросы

Оплаченный заказ - это запуск «webhook» и одно сообщение, два запуска базового блока, 1 000 запусков стоят 100 ₽. Уведомление с другим статусом, после которого сообщения нет, стоит один запуск: ответ OK и «condition» бесплатные. Сверка get_payment_state добавляет два запуска. Схема включена всё время, на её часы уходит большая часть бесплатных 350 ₽ в месяц.

Банк сочтёт уведомление недоставленным и будет повторять его раз в час в течение суток, а потом раз в сутки в течение месяца. Так случится, если схема выключена: вебхук отвечает кодом 409. Без блока «webhook response» nana800 ответит кодом 200, но с текстом {"finished":true,"default":true} вместо OK, и повторы тоже пойдут.

Нет. Token - это подпись SHA-256 от полей уведомления и пароля терминала, а блока, который считает SHA-256, в nana800 нет. Значит, уведомление может подделать любой, кто знает адрес вебхука. Перед выдачей товара сверяйте платёж блоком «T-Bank Acquiring» с операцией get_payment_state: у настоящей оплаты is_paid равен true.

Не заменяйте его, иначе сайт перестанет узнавать об оплатах. Платежи, созданные в nana800, получат свой адрес через поле «Куда прислать уведомление об оплате», он важнее настроек терминала. Если нужны сообщения и о платежах сайта, попросите разработчика пересылать каждое уведомление ещё и на адрес вебхука nana800.

На странице «API» откройте вкладку «Попробовать» и отправьте JSON вида {"Status": "CONFIRMED", "OrderId": "test-1", "PaymentId": "1", "Amount": 150000}. Сообщение придёт в Telegram, а в истории запусков будет ответ OK. Если в схеме стоит сверка get_payment_state, на выдуманном номере платежа она вернёт ошибку, так и должно быть.

Соберите первую схему бесплатно

Регистрация бесплатная, карта не нужна. Каждый месяц баланс бесплатно пополняется до 350 ₽, этого хватает примерно на 3 500 запусков простых блоков.

Собрать в конструкторе