Інтеграція 1С-Бітрікс з платіжною системою Белкарт (Білорусь)

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція 1С-Бітрікс з платіжною системою Белкарт (Білорусь)
Середня
~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
    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С-Бітрікс з платіжною системою Белкарт (Білорусь)

Белкарт — національна платіжна система Республіки Білорусь. Якщо інтернет-магазин працює на білоруському ринку та приймає лише VISA/Mastercard, він втрачає частину аудиторії: у значної частки білоруських покупців основною карткою є Белкарт або Белкарт-Маестро. Інтеграція Белкарт відрізняється від стандартного VISA/Mastercard-еквайрингу: картки обробляються через білоруський процесинговий центр (НКФО «ЄРВП»), і технічний протокол відрізняється.

Архітектура та протокол

Белкарт надає кілька способів інтеграції:

  1. Через банк-еквайер — більшість білоруських банків (Беларусбанк, Пріорбанк, БелВЕБ, МТБанк та ін.) підтримують Белкарт у своєму еквайрингу. У цьому випадку Белкарт-транзакції обробляються через той самий шлюз, що й VISA/Mastercard, — окремої інтеграції не потрібно, лише перевірити у договорі.

  2. Пряма інтеграція через НКФО «ЄРВП» — для великих торгових точок, підключення безпосередньо до Белкарт-процесингу. Протокол: ISO 8583 або REST API НКФО ЄРВП.

Для більшості інтернет-магазинів на Бітрікс актуальний перший варіант — додавання Белкарт до існуючого банківського еквайрингу.

Особливості протоколу Белкарт

При прямому підключенні через НКФО ЄРВП використовується REST API зі специфічними особливостями:

class BelkartGateway
{
    private const API_URL = 'https://gateway.belkart.by/api/v1/';
    private string $terminalId;
    private string $merchantKey;

    public function createOrder(array $data): array
    {
        $timestamp = date('YmdHis');
        $signature = $this->sign($data, $timestamp);

        $payload = [
            'TerminalID'  => $this->terminalId,
            'OrderID'     => 'BX' . $data['orderId'],
            'Amount'      => (int)($data['amount'] * 100), // копійки BYN
            'Currency'    => '933', // BYN
            'Description' => 'Оплата замовлення №' . $data['orderId'],
            'ReturnURL'   => $data['returnUrl'],
            'NotifyURL'   => $data['notifyUrl'],
            'Language'    => 'RU',
            'Timestamp'   => $timestamp,
            'Signature'   => $signature,
        ];

        return $this->request('orders', $payload);
    }

    private function sign(array $data, string $timestamp): string
    {
        // Конкатенація полів у визначеному порядку + ключ
        $signString = $this->terminalId
            . $data['orderId']
            . (int)($data['amount'] * 100)
            . '933'
            . $timestamp
            . $this->merchantKey;

        return strtoupper(hash('sha256', $signString));
    }

    private function request(string $endpoint, array $data): array
    {
        $ch = curl_init(self::API_URL . $endpoint);
        curl_setopt_array($ch, [
            CURLOPT_POST           => true,
            CURLOPT_POSTFIELDS     => json_encode($data),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        ]);
        $result = curl_exec($ch);
        curl_close($ch);
        return json_decode($result, true);
    }
}

3D-Secure для Белкарт

Белкарт підтримує протокол 3D-Secure (національна реалізація — «Белкарт-3D»). Після редиректу на сторінку оплати покупець проходить верифікацію через SMS-код або мобільний банк. Технічно це обробляється на стороні процесингу, магазин лише отримує підсумкове повідомлення — втручання у протокол 3DS не потрібно.

Спільна форма оплати (Multi-payment)

Рекомендований UX для білоруських магазинів — єдина форма з кількома платіжними системами:

[VISA / Mastercard] [Белкарт] [ЄРВП]

У 1С-Бітрікс це реалізується через кілька платіжних систем у модулі sale або через єдиний обробник із параметром paymentType. При виборі покупцем «Белкарт» — форма показує карткові поля з логотипом Белкарт; решта флоу ідентичний еквайрингу VISA.

Обробка повідомлень

$body = file_get_contents('php://input');
$data = json_decode($body, true);

// Верифікація підпису відповіді
$receivedSig = $data['Signature'] ?? '';
$expectedSig = strtoupper(hash('sha256',
    $data['TerminalID']
    . $data['OrderID']
    . $data['Amount']
    . $data['Currency']
    . $data['Status']
    . $merchantKey
));

if (!hash_equals($expectedSig, $receivedSig)) {
    http_response_code(403);
    exit;
}

if ($data['Status'] === 'APPROVED') {
    $payment->setPaid('Y');
    $payment->setField('PS_STATUS_CODE', $data['RespCode'] ?? '');
    $payment->save();
}

Тестування

Белкарт надає тестові картки через банки-учасники. Тестова картка видається при підключенні до тестового середовища шлюзу. Критично важливо протестувати:

  • Успішну оплату карткою Белкарт із 3D-Secure
  • Відхилення за лімітом
  • Скасування на сторінці оплати

Терміни

Завдання Термін
Інтеграція через банк-еквайер (без додаткового коду) 0 днів — включено в еквайринг
Кастомний обробник для прямого підключення 3–5 днів
Тестування з тестовими картками Белкарт 1 день