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

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

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

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

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

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

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

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

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

Assist выступает агрегатором: магазин подключается к одному шлюзу, а конечный процессинг (Белкарт, Visa, ЕРИП) происходит на стороне 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 Belarus поддерживает операции в BYN, USD, EUR. Если в магазине цены в BYN, а покупатель хочет платить картой в USD, Assist выполняет конвертацию по курсу Нацбанка на момент транзакции. В Битрикс важно правильно передавать код валюты — ISO 4217 (BYN, USD, EUR), а не символьные обозначения (р., $).

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

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

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

Реальный кейс: двойное списание

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

Сроки

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