Интеграция 1С-Битрикс с рассрочкой Халва (Беларусь)

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

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

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1532
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1045
  • Разработка виджета онлайн-записи на прием для медицинского центра
    Разработка виджета онлайн-записи на прием для медицинского центра
    820
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    915
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    853
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1208

Покупатель выбрал рассрочку, нажал «Оплатить», но заказ завис в статусе «Ожидание». Ошибка в подписи HMAC-SHA256 — и банк отклоняет запрос, клиент уходит. Интеграция рассрочки «Халва» от Беларусбанка в 1С-Битрикс требует точной верификации подписей и корректной обработки обратных вызовов. Мы реализовали 15+ таких интеграций, поэтому гарантируем надёжную работу обработчика. Средняя экономия на разработке по сравнению с готовыми модулями — 20–30%, а конверсия растёт на 15–25%.

Почему интеграция с Халвой требует особого подхода?

Рассрочка «Халва» — не обычная оплата картой. Банк возвращает покупателя на сайт после подтверждения, а затем отдельным webhook сообщает результат. Если обработчик неверно обработает return_url или уведомление — заказ может зависнуть в статусе ожидания, а деньги не поступят. Кроме того, API требует подписи HMAC-SHA256 для всех запросов — ошибка в генерации подписи приведёт к отказу. Наша команда реализует все проверки и обрабатывает edge-case, включая частичные возвраты и таймауты.

Для подключения нужны merchant_id и API-токен, выдаваемые Беларусбанком после договора. Мы помогаем с заявкой и настройкой тестовой среды.

Как устроено API Беларусбанка?

Банк предоставляет REST API для создания платежей. Основные шаги:

  1. Магазин отправляет запрос на создание платёжной сессии
  2. Получает redirect_url — ссылку для перехода покупателя
  3. Покупатель подтверждает рассрочку в интерфейсе банка
  4. Банк возвращает покупателя на return_url магазина
  5. Банк отправляет webhook подтверждения на notification_url

Параметры для уточнения у банка при подключении: endpoint API, формат запросов (обычно REST/JSON), метод аутентификации (токен или сертификат), тестовая и боевая среды. Документация доступна на официальном сайте Беларусбанка.

Создание обработчика платежей

Создаём обработчик в /local/php_interface/include/sale_payment/halva_belarus/: Файл .description.php:

<?php $PAYSYSTEM_SORT = 150; $PAYSYSTEM_NAME = 'Халва (Беларусбанк, рассрочка)'; $PAYSYSTEM_IS_CASH = 'N'; 

Класс обработчика:

<?php
class HalvaBelarusHandler extends \Bitrix\Sale\PaySystem\ServiceHandler
{
    public function initiatePay(
        \Bitrix\Sale\Payment $payment,
        \Bitrix\Main\Request $request = null
    ) {
        $order = $payment->getOrder();
        $installmentMonths = $this->getBusinessValue($payment, 'INSTALLMENT_MONTHS');
        $sessionData = [
            'merchant_id' => $this->getBusinessValue($payment, 'MERCHANT_ID'),
            'order_id' => $order->getId(),
            'amount' => $payment->getSum(),
            'currency' => 'BYN',
            'installment' => (int)$installmentMonths,
            'description' => 'Заказ #' . $order->getId(),
            'return_url' => $this->getSuccessUrl($payment),
            'cancel_url' => $this->getFailUrl($payment),
            'notification_url' => $this->getNotificationUrl($payment),
            'customer_name' => $order->getPropertyValueByCode('NAME'),
            'customer_phone' => $order->getPropertyValueByCode('PHONE'),
        ];
        $response = $this->callApi('POST', '/v1/payments/create', $sessionData);
        if (empty($response['redirect_url'])) {
            $this->createError('Ошибка создания платёжной сессии Халва');
            return \Bitrix\Sale\PaySystem\ServiceResult::create()->setRedirectUrl('/');
        }
        $this->savePaymentId($payment, $response['payment_id']);
        $result = new \Bitrix\Sale\PaySystem\ServiceResult();
        $result->setPaymentUrl($response['redirect_url']);
        return $result;
    }
}

Обработка уведомлений и возвратов

Банк отправляет POST-запрос на notification_url при успешной оплате или отказе. Ключевой момент — верификация подписи. Если подпись неверна, запрос отклоняется. В обработчике мы сверяем payment_id с сохранённым значением, чтобы предотвратить подмену.

<?php
public function processRequest( \Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request ): \Bitrix\Sale\PaySystem\ServiceResult {
    $result = new \Bitrix\Sale\PaySystem\ServiceResult();
    if (!$this->verifySignature($request)) {
        $result->addError(new \Bitrix\Main\Error('Неверная подпись запроса'));
        return $result;
    }
    $status = $request->get('status');
    $paymentId = $request->get('payment_id');
    $savedPaymentId = $this->getPaymentIdFromStorage($payment);
    if ($paymentId !== $savedPaymentId) {
        $result->addError(new \Bitrix\Main\Error('Несоответствие payment_id'));
        return $result;
    }
    if ($status === 'SUCCESS' || $status === 'APPROVED') {
        $result->setOperationType(\Bitrix\Sale\PaySystem\ServiceResult::MONEY_COMING);
        $payment->setPaid('Y');
    } elseif ($status === 'CANCEL' || $status === 'REJECTED') {
        $result->setOperationType(\Bitrix\Sale\PaySystem\ServiceResult::MONEY_COMING);
    }
    return $result;
}

Возвраты выполняются через отдельный API-метод. Мы автоматически синхронизируем статус заказа с банком — это исключает ручные операции и ошибки.

Настройка и проверка на сайте

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

Параметр Описание
MERCHANT_ID ID магазина в системе Беларусбанка
API_TOKEN Токен авторизации
INSTALLMENT_MONTHS Количество месяцев рассрочки (список: 3, 6, 12, 24)
TEST_MODE Тестовый режим (Y/N)
API_URL URL API (тест / боевой)

Добавляем проверку минимальной суммы заказа:

<?php
public function isAvailable(\Bitrix\Sale\PayableItemCollection $basket): bool
{
    $total = $basket->getPrice();
    $min = (float)\Bitrix\Main\Config\Option::get('halva_belarus', 'min_amount', 50);
    return $total >= $min;
}

Как мы тестируем интеграцию?

Тестирование проходит в песочнице банка с реальными тестовыми картами. Мы проверяем сценарии: успешная оплата, отказ, частичный возврат, таймаут. После подтверждения всех статусов обработчик переносится на боевую среду. Это исключает сюрпризы после запуска.

Что входит в услугу и за сколько дней мы её выполним?

  • Аудит текущей платёжной системы и требований банка
  • Разработка обработчика с верификацией подписей и обработкой ошибок
  • Настройка тестовой и боевой среды API
  • Интеграция webhook-уведомлений и обработка статусов
  • Тестирование с реальными картами в песочнице банка
  • Документация по эксплуатации и обучение вашего администратора
  • Гарантийная поддержка в течение 30 дней после запуска
Этап Срок
Настройка тестового подключения к API банка 1 день
Обработчик платёжной системы (initiatePay) 2 дня
Обработчик уведомлений + верификация подписи 2 дня
Возвраты через API 1 день
Тестирование в тестовой среде банка 2 дня
Итого 8–10 дней

Наш опыт и процесс

Мы работаем с 1С-Битрикс более 10 лет и выполнили 50+ интеграций с платёжными системами: Халва, ЮKassa, Сбер. Наши решения проходят аудит банка с первого раза. Процесс включает этапы: анализ требований → проектирование → реализация → тестирование → деплой. На каждом этапе вы получаете промежуточный результат и можете внести правки.

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

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