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

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

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

Этапы разработки

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

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

Интеграция 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 день.