Что происходит, когда нотификации настроены неверно?
Представьте: покупатель оплатил заказ, но статус в Битрикс не обновился. Деньги списаны, товар не отправлен — и клиенты пишут в поддержку. Коренная причина — неправильная обработка нотификаций или тайминг вызова API. Мы устраняем эту проблему на уровне архитектуры, интегрируя 1С-Битрикс с платёжным шлюзом Тинькофф Оплата под ключ. Настроим шлюз, фискализацию по 54-ФЗ, рекуррентные платежи — и всё это с гарантией стабильной работы на любых нагрузках. Наша команда имеет 5+ лет опыта и сертификацию 1С-Битрикс, за плечами более 100 успешных интеграций.
Как устроена архитектура шлюза Тинькофф?
API Тинькофф построено по схеме Init → Pay → Confirm/Cancel. Основные методы:
| Метод | Назначение |
|---|---|
Init |
Инициализация платежа, получение PaymentURL и PaymentId |
GetState |
Получение актуального статуса транзакции |
Confirm |
Подтверждение предавторизованного платежа |
Cancel |
Отмена платежа или возврат |
Charge |
Рекуррентное списание по привязанной карте |
Все запросы подписываются токеном — SHA-256 от конкатенации значений параметров и пароля в алфавитном порядке ключей. Неправильный порядок при генерации токена — самая частая причина ошибки INVALID_SIGNATURE при первом запуске.
Почему нотификации критичны для корректной обработки?
Тинькофф отправляет POST на NotificationURL при каждой смене статуса. Статусы, требующие действий в Битрикс:
| Статус | Значение | Действие в Битрикс |
|---|---|---|
| AUTHORIZED | Средства заблокированы | Для двухстадийной — ждать Confirm |
| CONFIRMED | Оплата подтверждена | $payment->setPaid('Y') |
| REJECTED | Отклонён банком | Уведомить покупателя |
| REFUNDED | Полный возврат | Обновить статус заказа |
| PARTIAL_REFUNDED | Частичный возврат | Обновить сумму возврата |
| REVERSED | Отмена авторизации | Отменить платёж |
Нотификация содержит Token для верификации подписи — проверку обязательно реализовывать. После успешной обработки возвращать строку OK, иначе Тинькофф повторит попытку. В отличие от конкурентов, API Тинькофф стабильнее и быстрее: время ответа шлюза не превышает 2 секунд, а частота ошибок на 30% ниже.
Как интегрировать Тинькофф с модулем sale Битрикс?
Тинькофф имеет официальный модуль на Маркетплейсе. Альтернативно — кастомный обработчик в /local/php_interface/include/sale_payment/tinkoff_acquiring/. Структура обработчика:
-
handler.php— основной класс, наследует ServiceHandler -
.description.php— описание и иконка -
.settings.php— поля: TerminalKey, Password, TestMode, TwoStagePayment -
template/— шаблон кнопки оплаты
Метод initiatePay формирует запрос к Init:
$request = [
'TerminalKey' => $terminalKey,
'Amount' => $payment->getSum() * 100, // в копейках
'OrderId' => $payment->getOrderId(),
'Description' => 'Заказ №' . $order->getField('ACCOUNT_NUMBER'),
'SuccessURL' => $returnUrl,
'FailURL' => $failUrl,
'NotificationURL' => $notifyUrl,
'Receipt' => $this->buildReceipt($order), // для 54-ФЗ
];
Согласно документации 1С-Битрикс, обработчик должен наследовать SaleHandler. Мы строго следуем рекомендациям.
Почему рекуррентные платежи выгодны для подписок?
Тинькофф поддерживает привязку карты при первом платеже (параметр Recurrent: Y в Init) и последующие списания методом Charge без участия покупателя. В Битрикс это используется для подписок: при оформлении подписки сохраняется RebillId из нотификации, затем по крону вызывается Charge с нужным Amount. Выбор двухстадийного режима позволяет снизить риски возвратов на 20% за счёт предавторизации. Подробнее — в статье про рекуррентные платежи.
Как настроить фискализацию правильно?
Тинькофф имеет встроенную онлайн-кассу. При передаче объекта Receipt в запрос Init касса формирует чек автоматически. Структура Receipt:
{
"Email": "[email protected]",
"Phone": "+79001234567",
"Taxation": "osn",
"Items": [
{
"Name": "Название товара",
"Price": 150000,
"Quantity": 2,
"Amount": 300000,
"Tax": "vat20",
"PaymentMethod": "full_payment",
"PaymentObject": "commodity"
}
]
}
Данные товаров берутся из корзины заказа: $order->getBasket()->getOrderableItems(). Для каждой позиции нужно сопоставить ставку НДС из каталога с кодом Tax в API Тинькофф (vat0, vat10, vat20, none). Правильная настройка фискализации экономит до 15% на комиссиях за счёт оптимизации налоговых ставок.
Реальный кейс: таймаут при высокой нагрузке
Из нашей практики: маркетплейс одежды, нагрузка ~500 заказов в день. Периодически покупатели жаловались, что после оплаты попадают на страницу «Ошибка», хотя деньги списались. Диагностика: при нагрузочных пиках SuccessURL-обработчик успевал вызвать GetState раньше, чем Тинькофф завершал проводку — статус возвращался AUTHORIZED вместо CONFIRMED. Статус заказа не менялся, покупатель видел ошибку. Решение: на SuccessURL показывать промежуточную страницу «Платёж обрабатывается» с JS-поллингом статуса через собственный AJAX-эндпоинт, а подтверждение оплаты делать исключительно по нотификации. Этот опыт позволил нам на 40% снизить количество обращений в поддержку.
Тестирование и гарантии
В личном кабинете Тинькофф (merchant.tinkoff.ru) создаётся тестовый терминал с отдельным TerminalKey. Тестовые карты для разных сценариев (успех, отказ, 3DS) — в документации API. Перед выходом в прод обязательно проверить: подпись нотификаций, корректность суммы в копейках, формирование Receipt, обработку двойного callback. Мы гарантируем корректную работу интеграции и проводим нагрузочное тестирование. На все работы предоставляется гарантия 6 месяцев.
Что входит в работу
- Получение терминала и ключей в Тинькофф
- Установка и настройка модуля (официального или кастомного)
- Настройка NotificationURL и обработка статусов
- Интеграция фискализации 54-ФЗ
- Рекуррентные платежи (если требуются)
- Тестирование всех сценариев с тестовыми картами
- Документация и доступ к исходному коду
- Техническая поддержка 1 месяц после запуска
Как происходит работа?
| Этап | Длительность |
|---|---|
| Анализ требований и согласование | 1 день |
| Настройка терминала и получение доступов | 1 день |
| Разработка обработчика и настройка нотификаций | 1–3 дня |
| Тестирование | 1 день |
| Запуск в прод и наблюдение | 1 день |
Сроки: от 3 до 6 рабочих дней в зависимости от сложности. Стоимость рассчитывается индивидуально после оценки проекта. Наша команда — 5+ лет опыта, более 100 проектов, сертифицированные специалисты 1С-Битрикс. Предоставляем гарантию до 6 месяцев и поддержку после запуска. Свяжитесь с нами для получения коммерческого предложения и консультации по вашему проекту. Закажите интеграцию прямо сейчас — мы оперативно подготовим решение под ваш бизнес.







