Як налаштувати інтернет-еквайринг на 1С-Бітрікс?
На перший погляд задача «підключити оплату карткою» здається тривіальною, аж до першого інциденту в продакшні: статуси замовлень не оновлюються, гроші прийшли — а замовлення висить в «Очікує оплати». Причина — webhook від банку не доходить до сервера через WAF або помилку PHP. Один із проєктів — інтернет-магазин автозапчастин з каталогом на 50 000 товарів. При переході на виділений сервер Cloudflare заблокував POST-запити від банку. Діагностика зайняла дві години, рішення — налаштування винятків у фаєрволі. Після цього ми розробили універсальний чек-лист для перевірки доставки сповіщень. Ми, інженери з десятирічним досвідом у Бітрікс-розробці (10+ років, 200+ проєктів), розберемо повний цикл: від вибору схеми до діагностики. Наш підхід — надійність та прозорість, гарантуємо працездатність інтеграції.
Докладніше про технологію webhook можна прочитати на Wikipedia Webhook.
Покроковий план налаштування
- Аудит поточної платіжної системи.
- Вибір оптимальної схеми: готовий модуль, кастомний обробник або JS-віджет.
- Розробка або встановлення платіжного обробника.
- Налаштування webhook та доставки сповіщень.
- Інтеграція з 1С та фіскалізацією (54-ФЗ).
- Тестування в бойовому режимі та моніторинг.
Три підходи до інтеграції
Готовий модуль з Маркетплейсу — Сбербанк, Тінькофф, ЮKassa, Альфа-Банк мають офіційні модулі. Встановлюються через /bitrix/admin/update_system.php. Швидко, підтримується вендором, але обмежена гнучкість.
Кастомний обробник у /local/ — коли стандартний модуль не покриває потреби: нестандартне маппування статусів, кастомна фіскалізація, кілька еквайрів. Кастомний обробник у 2 рази надійніший за готовий модуль при високому навантаженні.
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. Перевірте webhook Бітрікс на відповідність.
Чому кастомний обробник кращий за готовий модуль?
Готовий модуль не дозволяє гнучко маппувати статуси замовлень: наприклад, у Тінькофф статус «SUCCESS» може означати «Оплачено» або «Чекає підтвердження». Кастомний обробник дає 100% контроль над логікою, плюс можливість об'єднати кілька еквайрів в один інтерфейс. При інтеграції з 1С та фіскалізацією (54-ФЗ) кастомний підхід обов'язковий — готові модулі часто не підтримують АТОЛ у нестандартних сценаріях. Вимоги 54-ФЗ регулюються Федеральным законом. Кастомний обробник у 2 рази гнучкіший та надійніший за готове рішення.
Коли потрібна фіскалізація?
Фіскалізація обов'язкова для всіх онлайн-платежів на території РФ. При оплаті карткою касовий чек має бути надісланий покупцю в електронному вигляді. Налаштування фіскалізації включає інтеграцію з ОФД та АТОЛ. У нашому стеку — АТОЛ Онлайн, який підтримує 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 день |
Вартість налаштування готового модуля — від 15 000 грн, кастомного обробника — від 30 000 грн, двостадійний еквайринг — від 40 000 грн. Точна ціна залежить від складності інтеграції з 1С та фіскалізацією.
Наша компанія має 10+ років досвіду у розробці на 1С-Бітрікс (200+ реалізованих проєктів). Ми працюємо з 1С-Бітрікс понад 10 років, реалізували 200+ проєктів для інтернет-магазинів та B2B-порталів. Більше 50 з них — з кастомним еквайрингом. У разі проблем реагуємо за 2 години, надаємо сертифікати відповідності.
Наша розробка еквайрингу для 1С-Бітрікс включає налаштування платіжного обробника, webhook Бітрікс, онлайн-каси 54-ФЗ та інтеграцію з Тінькофф. Ми пропонуємо готовий модуль Бітрікс еквайрингу для швидкого старту та кастомний обробник для складних проєктів.
Вартість розраховується індивідуально — зв'яжіться з нами для оцінки вашого проєкту. Замовте послугу налаштування еквайрингу під ключ — отримайте надійну інтеграцію. Для замовлення пишіть на електронну пошту або телефонуйте.







