Интеграция 1С-Битрикс с платежной системой Assist Belarus

Интеграция 1С-Битрикс с платёжной системой Assist Belarus Мы часто сталкиваемся с ситуацией, когда белорусский интернет-магазин пытается подключить Assist Belarus, но сталкивается с двойными списаниями или неверной верификацией подписей. Наш опыт показывает: правильно настроенный обработчик избав
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с платежной системой Assist Belarus
Средний
~1-2 недели

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

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

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995
  • 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
    733
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    772
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1134

Интеграция 1С-Битрикс с платёжной системой Assist Belarus

Мы часто сталкиваемся с ситуацией, когда белорусский интернет-магазин пытается подключить Assist Belarus, но сталкивается с двойными списаниями или неверной верификацией подписей. Наш опыт показывает: правильно настроенный обработчик избавляет от 80% проблем на старте. За годы работы мы накопили экспертизу, позволяющую избежать таких ошибок: неверной подписи, неучтённых статусов и потери нотификаций. Assist Belarus — платёжный шлюз (Wikipedia) белорусского процессинга, агрегирующий карты (Visa/Mastercard/Белкарт) и ЕРИП. Для магазина это одно подключение вместо нескольких банковских договоров. Технически интеграция строится через REST API Assist; мы реализовали её для 15+ проектов, гарантируя корректную обработку всех статусов и защиту от повторных списаний.

Принцип работы Assist Belarus

Assist выступает агрегатором: магазин подключается к одному шлюзу, а конечный процессинг происходит на стороне Assist. Схема взаимодействия:

  1. Магазин формирует запрос к API Assist (https://payments.assist.by/) с параметрами заказа
  2. Assist возвращает orderId и URL платёжной страницы
  3. Покупатель выбирает способ оплаты и платит на странице Assist
  4. Assist отправляет POST-нотификацию на callback_url магазина
  5. Магазин верифицирует данные и подтверждает заказ

API работает через HTTPS POST с параметрами в теле запроса (application/x-www-form-urlencoded) либо в JSON в зависимости от версии API.

Настройка обработчика в Битрикс

Assist Belarus не имеет официального модуля в Маркетплейс Битрикс, поэтому интеграция реализуется через кастомный обработчик платёжной системы модуля sale.

Размещение: /local/php_interface/include/sale_payment/assist_belarus/ Ключевые настройки (.settings.php):

return [ 'MERCHANT_ID' => ['NAME' => 'Merchant ID', 'SORT' => 100], 'LOGIN' => ['NAME' => 'Логин в Assist', 'SORT' => 200], 'PASSWORD' => ['NAME' => 'Пароль', 'SORT' => 300], 'TEST_MODE' => ['NAME' => 'Тестовый режим', 'SORT' => 400], 'CURRENCY' => ['NAME' => 'Валюта (BYN/USD)', 'SORT' => 500], ]; 

Метод initiatePay формирует запрос на создание счёта:

$params = [ 'Merchant_ID' => $this->getParam('MERCHANT_ID'), 'OrderNumber' => $order->getField('ACCOUNT_NUMBER'), 'OrderAmount' => number_format($payment->getSum(), 2, '.', ''), 'OrderCurrency'=> $this->getParam('CURRENCY'), 'URL_RETURN' => $returnUrl, 'URL_RETURN_NO'=> $failUrl, 'callbackType' => 'server', 'callbackURL' => $callbackUrl, 'Language' => 'RU', ]; 

Верификация нотификаций

Assist передаёт подпись через параметр Signature — MD5 или SHA256 от конкатенации Merchant_ID, OrderNumber, OrderAmount, OrderCurrency и секретного ключа. Порядок полей фиксирован и указан в документации.

Обработка нотификации в processRequest:

$expectedSign = md5( $merchantId . $orderNumber . $orderAmount . $currency . $secretKey ); if ($expectedSign !== strtolower($_POST['Signature'])) { throw new \Exception('Invalid signature'); } $status = $_POST['OrderState']; if ($status === 'Approved') { $payment->setPaid('Y'); $payment->save(); } 

Статусы Assist: Approved (оплачен), Declined (отклонён), Cancelled (отменён), Pending (ожидает).

Как избежать двойного списания при интеграции с Assist?

Из практики: один наш клиент — магазин белорусской косметики — столкнулся с тем, что у нескольких покупателей деньги списались дважды. Анализ логов показал: покупатель нажимал «Оплатить», страница зависала (медленный хостинг), он нажимал ещё раз — формировалось два запроса к Assist с разными OrderNumber (Битрикс создал два платежа для одного заказа). Решение: добавить кнопку disabled после первого клика на JS-уровне и проверку на стороне Битрикс — не создавать новый платёж, если у заказа уже есть активный необработанный.

По данным документации Assist, повторные запросы с одинаковым OrderNumber также блокируются шлюзом, но лучше полагаться на собственную защиту.

Валютные операции

Assist Belarus поддерживает операции в BYN, USD, EUR. Если в магазине цены в BYN, а покупатель хочет платить картой в USD, Assist выполняет конвертацию по курсу Нацбанка на момент транзакции. В Битрикс важно правильно передавать код валюты — ISO 4217 (BYN, USD, EUR), а не символьные обозначения (р., $).

Работа с ЕРИП через Assist

При подключении ЕРИП через агрегатор Assist покупателю на странице оплаты предлагается выбор: «Карта» или «ЕРИП». При выборе ЕРИП Assist возвращает реквизиты для оплаты — номер в ЕРИП и QR-код. Магазин получает нотификацию так же, как при карточной оплате.

Преимущество агрегаторной схемы — не нужно отдельно регистрироваться в дереве ЕРИП: Assist делает это за вас в рамках договора. Но код услуги в дереве будет привязан к Assist, а не напрямую к вашей компании.

Сравнение: Assist Belarus vs прямая интеграция с банком

Критерий Assist Belarus Прямая интеграция
Количество подключений Одно Отдельно для каждого банка
Поддержка ЕРИП Да, через агрегатор Требуется регистрация в дереве ЕРИП
Время настройки 2–4 дня 1–3 недели
Комиссия Средняя, зависит от оборота Индивидуальный тариф банка

Assist Belarus выигрывает по скорости подключения — в среднем в 3 раза быстрее, чем прямая интеграция с банком. Однако для крупных оборотов прямая интеграция может быть выгоднее по комиссии.

Статусы нотификаций Assist

Статус Значение Действие в Битрикс
Approved Оплачен Установить статус оплаты, сохранить
Declined Отклонён Отменить заказ, уведомить клиента
Cancelled Отменён Вернуть заказ в корзину
Pending Ожидает Игнорировать до финального статуса

Что входит в работу по интеграции

  • Разработка кастомного обработчика под модуль sale
  • Настройка callback-уведомлений и верификации подписей
  • Тестирование всех сценариев: успешная оплата, отмена, ошибка
  • Подготовка документации по эксплуатации
  • Обучение сотрудников работе с платёжным шлюзом
  • Поддержка после запуска в течение месяца

Сроки

Assist Belarus предоставляет тестовый доступ в течение 1–3 дней после подачи заявки. Разработка обработчика и тестирование — 2–4 рабочих дня. Полная активация боевого аккаунта после проверки сайта — 3–7 рабочих дней.

Почему стоит выбрать агрегаторную схему ЕРИП через Assist?

Потому что она сокращает время выхода на рынок: не нужно ждать регистрации в дереве ЕРИП (обычно 2–4 недели). Assist делает это быстрее. Но учитывайте, что тарифы агрегатора могут быть выше, чем при прямом подключении. Мы поможем просчитать оба варианта и выбрать оптимальный.

Мы работаем с платёжными интеграциями более 8 лет, за это время реализовали более 50 проектов для Битрикс. Обращайтесь: поможем оценить проект и предложим решение под ключ. Чтобы получить консультацию по интеграции, напишите нам — оценим ваш проект за 1 день.