Настройка интернет-эквайринга на 1С-Битрикс под ключ

Как настроить интернет-эквайринг на 1С-Битрикс? Задача «подключить оплату картой» кажется тривиальной до первого инцидента в продакшне: статусы заказов не обновляются, деньги пришли — а заказ висит в «Ожидает оплаты». Причина — webhook от банка не доходит до сервера из-за WAF или ошибки PHP. Один
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка интернет-эквайринга на 1С-Битрикс под ключ
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1459
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    806
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1163

Как настроить интернет-эквайринг на 1С-Битрикс?

Задача «подключить оплату картой» кажется тривиальной до первого инцидента в продакшне: статусы заказов не обновляются, деньги пришли — а заказ висит в «Ожидает оплаты». Причина — webhook от банка не доходит до сервера из-за WAF или ошибки PHP. Один из проектов — интернет-магазин автозапчастей с каталогом на 50 000 товаров. При переходе на выделенный сервер Cloudflare заблокировал POST-запросы от банка. Диагностика заняла два часа, решение — настройка исключений в файрволе. После этого мы разработали универсальный чек-лист для проверки доставки уведомлений. Мы, инженеры с десятилетним опытом в Битрикс-разработке, разберём полный цикл: от выбора схемы до диагностики. Наш подход — надёжность и прозрачность, гарантируем работоспособность интеграции.

Подробнее о технологии webhook можно прочитать на Wikipedia Webhook.

Три подхода к интеграции

Готовый модуль из Маркетплейса — Сбербанк, Тинькофф, ЮKassa, Альфа-Банк имеют официальные модули. Устанавливаются через /bitrix/admin/update_system.php. Быстро, поддерживается вендором, но ограниченная гибкость.

Кастомный обработчик в /local/ — когда стандартный модуль не покрывает нужды: нестандартный маппинг статусов, кастомная фискализация, несколько эквайеров.

JS-виджет эквайера — CloudPayments, Robokassa встраиваются скриптом. Часть работы на клиенте, сервер только верифицирует результат.

Установка и настройка (пример: Тинькофф)

После установки модуля из Маркетплейса: Магазин → Настройки → Платёжные системы → Добавить → Тинькофф.

Параметр Источник
Terminal Key ЛК Тинькофф Бизнес → Интернет-эквайринг
Secret Key Там же
Notification URL https://shop.ru/bitrix/tools/sale_ps_result.php
Success URL Страница успешной оплаты

Кастомный обработчик: минимальный каркас

<?php // local/php_interface/include/sale_payment/mybank/handler.php use Bitrix\Sale\PaySystem\BaseServiceHandler; use Bitrix\Sale\PaySystem\ServiceResult; use Bitrix\Sale\Payment; use Bitrix\Main\Request; class MyBankHandler extends BaseServiceHandler { public function initiatePay(Payment $payment, Request $request): ServiceResult { $result = new ServiceResult(); $order = $payment->getCollection()->getOrder(); $session = $this->createGatewaySession( $order->getId(), $payment->getSum() ); if (empty($session['payUrl'])) { $result->addError(new \Bitrix\Main\Error('Gateway error: ' . ($session['error'] ?? ''))); return $result; } $result->setPaymentUrl($session['payUrl']); return $result; } public function processRequest(Payment $payment, Request $request): ServiceResult { $result = new ServiceResult(); $data = json_decode(file_get_contents('php://input'), true); // ВСЕГДА верифицируем подпись — не доверяем данным из запроса if (!$this->verifySignature($data)) { $result->addError(new \Bitrix\Main\Error('Invalid signature')); return $result; } if (($data['status'] ?? '') === 'PAID') { $result->setOperationType(ServiceResult::MONEY_COMING); } return $result; } } 

Диагностика: webhook не доходит

Самая частая причина — статусы заказов не меняются, хотя деньги списаны. Алгоритм диагностики:

# 1. Проверяем доступность endpoint извне curl -v -X POST https://shop.ru/bitrix/tools/sale_ps_result.php -d 'test=1' # Должен вернуть 200, не 403 # 2. Смотрим access.log на запросы от IP банка grep "sale_ps_result" /var/log/nginx/access.log | tail -50 # 3. Временное логирование (только при отладке!) file_put_contents('/tmp/ps_debug.log', date('Y-m-d H:i:s') . ' ' . $_SERVER['REMOTE_ADDR'] . ' ' . file_get_contents('php://input') . PHP_EOL, FILE_APPEND ); 

Типичные виновники: Cloudflare Bot Fight Mode блокирует POST-запросы без User-Agent; fail2ban блокирует IP банка по количеству запросов; PHP fatal error без записи в лог; HTTP→HTTPS редирект теряет тело POST.

Почему кастомный обработчик лучше готового модуля?

Готовый модуль не позволяет гибко маппить статусы заказов: например, в Тинькофф статус «SUCCESS» может означать «Оплачен» или «Ждёт подтверждения». Кастомный обработчик даёт 100% контроль над логикой, плюс возможность объединить несколько эквайеров в один интерфейс. При интеграции с 1С и фискализацией (54-ФЗ) кастомный подход обязателен — готовые модули часто не поддерживают АТОЛ в нестандартных сценариях. Требования 54-ФЗ регулируются Федеральным законом.

Когда нужна фискализация?

Фискализация обязательна для всех онлайн-платежей на территории РФ. При оплате картой кассовый чек должен быть отправлен покупателю в электронном виде. Настройка фискализации включает интеграцию с ОФД и АТОЛ. В нашем стеке — АТОЛ Онлайн, который поддерживает 54-ФЗ. Подключение фискализации добавляет 1–2 дня к сроку разработки.

Как мы обеспечиваем надёжность интеграции?

После настройки проводим нагрузочное тестирование: эмулируем до 50 одновременных запросов от банка, проверяем корректность обработки дублей и сбоев. Для критичных магазинов настраиваем мониторинг webhook-ов через cron — каждые 5 минут проверяем, что endpoint отвечает 200. В договоре фиксируем гарантию на доставку уведомлений: если заказ оплачен, статус изменится максимум за 30 секунд.

Двухстадийный эквайринг

Для магазинов, отгружающих после резервирования товара:

// При оформлении заказа — холдируем (PayType=T у Тинькофф) // При смене статуса на "Отгружен" — подтверждаем списание AddEventHandler('sale', 'OnSaleStatusOrder', function(\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); if ($order->getField('STATUS_ID') !== 'OD') return; foreach ($order->getPaymentCollection() as $payment) { if ($payment->getField('PS_STATUS') === 'hold') { capturePayment($payment->getField('PS_INVOICE_ID')); } } }); 

Что входит в работу?

Полный пакет при заказе настройки эквайринга: аудит текущей платёжной системы, выбор оптимальной схемы, разработка или доработка обработчика (включая фискализацию), настройка webhook-ов и тестирование доставки уведомлений, интеграция с 1С (обмен статусами, синхронизация), документация по настройкам и логированию, гарантийная поддержка 1 месяц после запуска.

Сроки и наши цифры

Задача Срок
Установка и настройка готового модуля 0.5–1 день
Кастомный обработчик с нуля 2–4 дня
Двухстадийный эквайринг +1–2 дня
Отладка webhook и тестирование 0.5–1 день

Мы работаем с 1С-Битрикс более 10 лет, реализовали 200+ проектов для интернет-магазинов и B2B-порталов. Более 50 из них — с кастомным эквайрингом. В случае проблем реагируем за 2 часа, предоставляем сертификаты соответствия.

Стоимость рассчитывается индивидуально — свяжитесь с нами для оценки вашего проекта. Закажите услугу настройки эквайринга — получите надёжную интеграцию.