Что происходит, когда нотификации настроены неверно?
Представьте: покупатель оплатил заказ, но статус в Битрикс не обновился. Деньги списаны, товар не отправлен — и клиенты пишут в поддержку. Коренная причина — неправильная обработка нотификаций или тайминг вызова 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 месяцев и поддержку после запуска. Свяжитесь с нами для получения коммерческого предложения и консультации по вашему проекту. Закажите интеграцию прямо сейчас — мы оперативно подготовим решение под ваш бизнес.
Как избежать типичных ошибок при подключении платёжных систем на 1С-Битрикс
Самая частая ошибка при интеграции — забыть про callback. Покупатель оплатил заказ, деньги списались, а статус в b_sale_order не обновился: менеджер видит «Ожидание оплаты» и начинает звонить клиенту. Причина — неправильный URL в настройках шлюза или обработчик, падающий с 500 при нестандартной структуре ответа. Мы предлагаем услуги по подключению платёжных систем на 1С-Битрикс с полным тестированием всех сценариев: успешная оплата, отказ, таймаут, частичный возврат, повторный callback.
Почему callback-уведомления критичны?
Каждый платёжный шлюз присылает уведомление на ваш сервер. Если обработчик не гарантирует идемпотентность — двойной вызов приведёт к двойному списанию. Мы всегда реализуем проверку по ID уведомления (external_id) и блокировку повторной обработки в \Bitrix\Sale\Order. Также критично настроить URL callback в личном кабинете агрегатора — /bitrix/tools/sale_ps_result.php для штатного модуля. Если используете кастомный обработчик, проверяем, что он отдаёт HTTP 200 даже при ошибке параметров (шлюз не должен повторять запрос бесконечно).
Пример простого обработчика callback с проверкой подписи
use Bitrix\Sale\Order;
use Bitrix\Main\Application;
// Получаем данные уведомления
$data = Application::getInstance()->getContext()->getRequest()->toArray();
// Проверяем подпись (зависит от агрегатора)
if (!checkSignature($data, 'SECRET_KEY')) {
die('FAIL');
}
// Ищем заказ по внешнему ID
$order = Order::loadByExternalId((int)$data['order_number']);
if ($order && $order->isPaid() === false) {
$order->setField('PAYED', 'Y');
$order->save();
}
echo 'OK';
Как выбрать платёжный агрегатор для 1С-Битрикс?
Выбор агрегатора зависит от географии покупателей, среднего чека и потребности в рассрочке. Для России базовый набор — ЮKassa (все основные методы, фискализация из коробки) и CloudPayments (виджет на странице без редиректа, Apple Pay). Если работаете с крупными корпоративными клиентами — добавьте Сбербанк (SberPay, СБП). Для международных продаж — Stripe или PayPal. Мы часто используем двухуровневую схему: основной агрегатор + резервный (автопереключение при падении).
Какие платёжные агрегаторы и способы оплаты мы используем
ЮKassa
Один договор — все основные способы: карты Visa/MasterCard/МИР, ЮMoney, SberPay, интернет-банки, рассрочка. Фискализация по 54-ФЗ из коробки (через модуль sale). Штатный обработчик /bitrix/modules/sale/handlers/paysystem/yandexpay/ покрывает базовые сценарии. Для холдирования (двухстадийная оплата), подписок или сплит-платежей — кастомная интеграция через YooKassa API v3. Callback настраиваем на /bitrix/tools/sale_ps_result.php, парсим notification и обновляем \Bitrix\Sale\Order через setField('PAYED', 'Y').
CloudPayments
Заточен на конверсию: виджет оплаты прямо на странице чекаута, без редиректа на внешний домен. Покупатель не уходит с сайта — процент отказов на этапе оплаты падает. Поддерживает рекуррентные платежи (токенизация карты через cryptogram), Apple Pay и Google Pay. 3D Secure с интеллектуальной маршрутизацией — запрашивается только при высоком риске фрода. Интеграция с Битрикс — через REST API CloudPayments и кастомный обработчик в модуле sale.
Тинькофф Оплата
API-интеграция через TinkoffPaymentAPI (готовый модуль или ручная реализация). QR-код для оплаты через приложение, рассрочка «Тинькофф Кредит» — критично для дорогих товаров. Частичные возвраты через метод Cancel — без звонков в банк, всё из админки Битрикс.
Сбербанк (SberPay и СБП)
SberPay — оплата по push-уведомлению или QR, СБП — комиссия 0.4–0.7% против 1.5–2.5% по картам. На объёме это ощутимая экономия. Холдирование через API registerPreAuth / deposit. Учитываем, что для SberPay требуется подписание отдельного договора с банком.
Apple Pay и Google Pay
Оплата в два касания, без ввода данных карты. Подключаются через агрегатор (ЮKassa, CloudPayments, Тинькофф). Важные нюансы:
- Apple Pay требует верификации домена: файл
apple-developer-merchantid-domain-association в /.well-known/. Без него кнопка не появится.
- Размещение кнопок строго по гайдлайнам Apple и Google — иначе отказ в ревью.
- Фоллбэк на стандартную форму оплаты, если устройство не поддерживает бесконтактную оплату.
| Способ оплаты |
Устройства |
Браузеры |
| Apple Pay |
iPhone, iPad, Mac |
Safari |
| Google Pay |
Android, Chrome |
Chrome, Firefox, Edge |
| Samsung Pay |
Samsung Galaxy |
Samsung Internet |
Рассрочка, BNPL и работа с 54-ФЗ
Если средний чек от 30 000 ₽ и конверсия проседает — рассрочка снимает ценовой барьер. Мы подключаем:
- Тинькофф Рассрочка (3–24 месяца)
- Покупай со Сбером
- Мокка / Долями — BNPL: 4 платежа, 0% для покупателя
Интеграция: виджет с расчётом ежемесячного платежа на карточке товара («от 2 500 ₽/мес»), передача данных заказа в банк через API, обработка статусов (одобрение, отказ, ожидание документов) в обработчиках OnSaleStatusOrder.
Фискализация по 54-ФЗ — обязательное требование. Штраф за отсутствие чека — до 100% от суммы расчёта. В соответствии с Федеральным законом № 54-ФЗ кассовый чек должен быть отправлен покупателю в электронной форме. Подключаем АТОЛ Онлайн, Orange Data, Модуль.Касса, Эвотор, Штрих-М. Настройка в Битрикс — раздел «Кассы» в модуле sale:
- Ставка НДС, предмет и способ расчёта — ошибка в любом поле может привести к штрафу при проверке.
- Чеки при предоплате и частичной оплате (два чека: при оплате и при отгрузке).
- Чеки возврата при отмене через
\Bitrix\Sale\Cashbox\Cashbox::addChecks().
- Мониторинг: если чек не ушёл — алерт менеджеру.
При торговле обувью, одеждой, парфюмерией обязательна передача кодов маркировки в чеке. Интеграция с «Честный ЗНАК», сканирование DataMatrix при сборке заказа, автоматический вывод из оборота при продаже через \Bitrix\Catalog\Product\Marking.
Сопровождение платежей: возвраты, мультивалюта, безопасность
Возвраты
Полный и частичный возврат без звонков в банк — через API агрегатора (refund / cancel). Чек возврата формируется автоматически, обновляется статус заказа, пересчитывается сумма, уведомляется покупатель. Сроки: электронные кошельки и СБП — 1–3 дня, банковская карта — до 30 рабочих дней (зависит от банка-эмитента).
Мультивалюта
Типы цен в b_catalog_price для каждой валюты, курсы через API ЦБ (\Bitrix\Currency\CurrencyManager::updateCBRFRates()) или ручной ввод. Конвертация на уровне каталога — покупатель видит цены в своей валюте. Для приёма долларов/евро подключаем Stripe, PayPal. Учитываем комиссии за конвертацию при расчёте маржинальности.
Безопасность
Данные карт обрабатываются на стороне сертифицированного шлюза (PCI DSS) — номер карты никогда не проходит через ваш сервер. Антифрод на уровне агрегатора. Логирование всех событий в b_sale_order_change для аудита. Мониторинг аномалий: скачок транзакций, нетипичная география — алерт.
Как мы работаем и ориентировочные сроки
- Анализ — какие способы оплаты нужны, рынки, объём транзакций, текущий агрегатор.
- Подбор решений — иногда два агрегатора лучше одного: ЮKassa как основной, CloudPayments как резерв — при падении одного трафик уходит на второй.
- Интеграция — тестируем каждый сценарий: успешная оплата, отказ 3DS, таймаут шлюза, двойной callback, частичный возврат.
- Фискализация — онлайн-касса, проверка корректности чеков на тестовых заказах.
- Мониторинг — алерты при сбоях шлюза, дашборд конверсии на этапе оплаты.
| Задача |
Ориентировочный срок |
| Подключение одной платёжной системы |
2–5 дней |
| Комплексная настройка платежей (несколько агрегаторов) |
1–2 недели |
| Подключение онлайн-кассы (54-ФЗ) |
3–5 дней |
| Интеграция рассрочки |
3–5 дней |
| Настройка мультивалютности |
1 неделя |
| Полная платёжная инфраструктура |
3–5 недель |
Что входит в работу
- Полная настройка выбранных платёжных систем в 1С-Битрикс: модули, обработчики, callback, тестирование.
- Документация по интеграции (схема работы шлюзов, описание обработчиков, логи).
- Обучение вашего менеджера работе с платёжными модулями и возвратами.
- Техническая поддержка на этапе запуска и первые 2 недели эксплуатации.
- Мониторинг — настраиваем алерты на ошибки и падение конверсии.
Все работы выполняются сертифицированными разработчиками 1С-Битрикс. Гарантируем работоспособность каждого сценария. Для быстрой оценки вашего проекта получите консультацию — просто оставьте заявку на сайте. Закажите интеграцию платёжных систем под ключ с фискализацией и защитой данных. Свяжитесь с нами, чтобы подобрать оптимальное решение для вашего бизнеса — мы поможем с выбором агрегатора и реализуем полный цикл интеграции.