Платежная форма T-Bank (без интернет-магазина)

Обновлено 23.04.2025

Размещение в публичной части

После установки модуля, компонент «Платежная форма T-Bank (без интрнет-магазина)» (rover:tinkoff.payform) будет доступен в визуальном редакторе по адресу «Компоненты Rover» > «Интернет-эквайринг Т-Банк приём платежей».

Компонент может выводить:

  • кнопку "Оплатить", по нажатию на которую происходит переход на платежный шлюз Т-Банка;
  • кнопку "Оплатить", с открытием платежного виджета прямо на сайте;
  • QR-код для оплаты в системе быстрых платежей.
Компонент необходимо устанавливать туда, где по логике вещей сайта располагаться переход к оплате.

Настройки компонента

Обязательные

  • TERMINAL_ID — идентификатор платежного терминала Tinkoff Bank
  • SHOP_SECRET_WORD — пароль платежного терминала Tinkoff Bank
  • SUM — сумма заказа в рублях
  • ORDER_ID — идентификатор заказа

Информация для печати чека

В боевом режиме передача этой информации обязательна. В тестовом — нет. Для оплаты по СБП тестовый режим не предусмотрен банком.

Информация может быть передана двумя способами:

  1. Через параметр RECEIPT компонента. Необходимо передавать полностью сформированный массив информации для печати чека. Структура должна соответствовать объекту Receipt в инициализации платежа. Этот способ используется при оплате через стандартное оформление заказа в модуле «Интернет-магазин».
  2. Через параметры
    • USE_RECEIPT — флаг Y/N, указывающий на то, будет ли использован этот способ или нет
    • RECEIPT_PHONE — телефон для отправки чека
    • RECEIPT_EMAIL — email для отправки чека
    • RECEIPT_TAXATION — код системы налогообложения
    • RECEIPT_NDS — код НДС
    • RECEIPT_POSITIONS_COUNT — количество позиций в чеке
    • RECEIPT_POSITION_#N#_NAME — Название N-й позиции
    • RECEIPT_POSITION_#N#_PRICE — Цена N-й позиции в рублях за 1 штуку
    • RECEIPT_POSITION_#N#_QUANTITY — Количество штук N-й позиции
    • При корректной передаче всех этих параметров информация для печати чека будет сформирована автоматически.
      Количество различных передаваемых позиций должно соответствовать параметру RECEIPT_POSITIONS_COUNT .
      Общая стоимость всех передаваемых позиций должна соответствовать параметру SUM.

Дополнительные

  • ITEM_ID — идентификатор платежа. Помогает различать платежи внутри одного заказа в банке. Если не задан, то вместо него берется текущая временная метка.
  • PS_MODE — способ приёма оплаты: платежный шлюз банка ('DEFAULT'), платежный виджет на странице ('WIDGET'), QR-код ('SKB'). По умолчанию 'DEFAULT'.
  • PAYMENT_DESCRIPTION — описание платежа для банка
  • REDIRECT_LIFETIME — время жизни ссылки оплаты в часах, по умолчанию 24
  • SUM_FORMATTED — форматированная сумма с обозначением валюты. Если передана, будет выведена в форме оплаты, если не передана, будет применено стандартное форматирование для поля SUM
  • SUM_IN_CURRENCY_FORMATTED — форматированная сумма в валюте, отличной от рубля. Если передана, будет выведена в форме оплаты вместе с суммой в рублях. Оплата в любом случае будет в рублях, из поля SUM.
  • NOTIFICATION_URL — адрес для нотификаций
  • SUCCESS_URL — перенаправление после успешного платежа
  • FAIL_URL — перенаправление после неуспешного платежа
  • FORM_DESCRIPTION — описание в форме оплаты
  • SUM_DESCRIPTION — описание перед суммой оплаты
  • BUTTON_TEXT — текст на кнопке оплаты
  • BUTTON_CLASSES — классы кнопки оплаты
  • BOTTOM_DESCRIPTION — описание под кнопкой оплаты
  • QR_BOTTOM_DESCRIPTION — дополнительное описание под кнопкой оплаты для оплаты по QR-коду
  • ERROR_NOTE — переопределение дефолтного сообщения о недоступности сервиса оплаты
  • MESSAGE — дополнительное сообщение об ошибке
  • REDIRECT — автоматическое перенаправление на платежный шлюз/открытие виджета
  • REDIRECT_DELAY — задержка перед перенаправлением в миллисекундах
  • LANGUAGE — язык платёжной формы. По умолчанию 'ru'
Итоговый идентификатор платежа в Т-Банке формируется как "#идентификатор заказа#_#идентификатор платежа#_#временная метка#". Он должен быть уникальным для каждой оплаты! Создать вторую оплату с тем же идентификатором банк не даст, будет выведена ошибка.

Обработка нотификаций

В связи с тем, что использование данного компонента предполагает отсутствие модуля «Интернет-магазин», то штатный механизм обработки нотификаций тут не предусмотрен. Для удобства добавлено специальное событие onNotification, которое срабатывает при получении нотификации в файл https://#ваш домен#/bitrix/components/rover/tinkoff.payform/result.php. Для использования данного механизма необходимо:

  1. В качестве ссылки для уведомлений в настройках компонента/терминала установить https://#ваш домен#/bitrix/components/rover/tinkoff.payform/result.php (для оплаты по QR-коду — только в настройках терминала)
  2. Добавить в файл init.php обработчик события onNotification. В этом обработчике в параметре request будет приходить вся информация из отправленных банком оповещений. Пример обработчика
Со своей стороны мы не можем предоставить готовый обработчик нотификаций, потому что без модуля Интернет-магазина этот процесс не стандартизирован.