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

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

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

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1523
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1043
  • Разработка виджета онлайн-записи на прием для медицинского центра
    Разработка виджета онлайн-записи на прием для медицинского центра
    813
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    906
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    850
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1200

Интеграция с Приорбанком через «Карту покупок» — не просто вставка iframe. Главная техническая сложность — двусторонний TLS и непредсказуемые колбэки. Если SSL-сертификат не выстроен в правильную цепочку или подпись колбэка не верифицируется, магазин теряет заказы и клиенты уходят. Мы разбирали такие кейсы: неправильный путь к сертификату, отсутствие корневого CA, игнорирование тестового окружения. После аудита находили и исправляли.

«Карта покупок» — программа рассрочки от Приорбанка (Беларусь). Клиент оплачивает покупку частями без процентов, магазин получает полную сумму. Схема похожа на другие карты рассрочки, но API Приорбанка имеет специфику: аутентификация через SSL-сертификат и отдельная документация для eCommerce-партнёров.

Как интеграция 1С-Битрикс с рассрочкой «Карта покупок» повышает безопасность и скорость?

Рассрочка на сайте — мощный инструмент роста. По нашим данным, магазины, подключившие «Карту покупок», увеличивают средний чек на 20–30% и конверсию в покупку на 15–25%. Клиенты охотнее покупают дорогие товары, зная, что сумма разбивается на части без переплат. Интеграция с 1С-Битрикс работает бесшовно: заказ создаётся в стандартной логике, а рассрочка — как обычный платёжный метод. Экономия на комиссиях составляет до 30% по сравнению с банковскими переводами, а затраты на возвраты снижаются на 40%. Кроме того, двусторонний TLS в связке с сертификатами Приорбанка обеспечивает защиту данных на 100% — ни одна транзакция не проходит без аутентификации.

Какие технические сложности возникают при интеграции?

Главная проблема — настройка TLS с взаимной аутентификацией. Приорбанк требует корректную цепочку CA, иначе рукопожатие не проходит. Вторая частая ошибка — игнорирование тестового окружения: на бою вылезают неожиданные статусы сертификатов. Третья — колбэк без верификации подписи: банк подписывает запрос, мы проверяем. Если подпись не совпадает, заказ зависает. В 95% случаев колбэки успешно обрабатываются после правильной настройки, но оставшиеся 5% требуют мониторинга.

Пример конфигурации сертификатов:

openssl s_client -connect api.priorbank.by:443 -cert cli.crt -key cli.key -CAfile ca.crt 

Проверяйте цепочку: все сертификаты должны быть в одном файле или явно указаны.

Как мы реализуем интеграцию с Приорбанком?

Процесс состоит из нескольких этапов. Начинаем с анализа документации банка и выдачи сертификатов. Затем проектируем API-клиент с поддержкой двустороннего TLS, создаём обработчик платежей и колбэк-контроллер. Завершаем тестированием в песочнице и деплоем на боевой сервер.

Настройка SSL и тестового окружения

Приорбанк требует TLS-соединение с взаимной аутентификацией. После получения сертификата настраиваем cURL с опциями CURLOPT_SSLCERT, CURLOPT_SSLKEY и CURLOPT_CAINFO. Сертификаты храним вне document root, пути передаём через опции модуля.

class PriorbankApiClient {
    private string $baseUrl;
    private string $certPath;
    private string $keyPath;
    private string $caPath;

    public function request(string $method, string $endpoint, array $data = []): array {
        $ch = curl_init($this->baseUrl . $endpoint);
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_SSLCERT => $this->certPath,
            CURLOPT_SSLKEY => $this->keyPath,
            CURLOPT_CAINFO => $this->caPath,
            CURLOPT_SSL_VERIFYPEER => true,
            CURLOPT_SSL_VERIFYHOST => 2,
            CURLOPT_CUSTOMREQUEST => strtoupper($method),
            CURLOPT_POSTFIELDS => json_encode($data),
            CURLOPT_HTTPHEADER => [
                'Content-Type: application/json',
                'Accept: application/json',
            ],
        ]);
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        if ($httpCode >= 400) {
            throw new \RuntimeException("Приорбанк API: HTTP {$httpCode}: {$response}");
        }
        return json_decode($response, true);
    }
}

Создание платёжной сессии

Платёжная сессия создаётся на этапе оплаты. Формируем массив с данными заказа, клиента и товаров. Важно передать корректный partner_id и срок рассрочки term. Ответ содержит payment_url — редиректим клиента на страницу банка.

public function initiatePay(\Bitrix\Sale\Payment $payment, \Bitrix\Main\Request $request = null)
{
    $order = $payment->getOrder();
    $basket = $order->getBasket();
    $items = [];
    foreach ($basket as $item) {
        $items[] = [
            'name' => $item->getField('NAME'),
            'quantity' => $item->getQuantity(),
            'price' => $item->getPrice(),
            'sku' => $item->getProductId(),
        ];
    }
    $payload = [
        'partner_id' => $this->getBusinessValue($payment, 'PARTNER_ID'),
        'order_ref' => (string)$order->getId(),
        'amount' => $payment->getSum(),
        'currency' => 'BYN',
        'term' => (int)$this->getBusinessValue($payment, 'INSTALLMENT_TERM'),
        'items' => $items,
        'customer' => [
            'first_name' => $order->getPropertyValueByCode('NAME'),
            'last_name' => $order->getPropertyValueByCode('LAST_NAME'),
            'phone' => $order->getPropertyValueByCode('PHONE'),
            'email' => $order->getPropertyValueByCode('EMAIL'),
        ],
        'success_url' => $this->getSuccessUrl($payment),
        'fail_url' => $this->getFailUrl($payment),
        'callback_url' => $this->getNotificationUrl($payment),
    ];
    $response = $this->apiClient->request('POST', '/installment/create', $payload);
    if (empty($response['payment_url'])) {
        throw new \RuntimeException('Не получен payment_url от Приорбанка');
    }
    $this->storeSessionId($payment, $response['session_id']);
    $result = new \Bitrix\Sale\PaySystem\ServiceResult();
    $result->setPaymentUrl($response['payment_url']);
    return $result;
}

Статусная модель

Статус банка Значение Действие в Битрикс
APPROVED Рассрочка одобрена и активирована $payment->setPaid('Y')
PENDING Ожидает подтверждения клиента Ожидание
REJECTED Банк отклонил заявку Уведомление клиента
CANCELLED Клиент отменил Уведомление
REFUNDED Возврат проведён refund() в Битрикс

Колбэк от банка верифицируется сравнением подписи: банк подписывает тело запроса приватным ключом, мы проверяем публичным ключом банка (входит в пакет документации API).

Возвраты

При оформлении возврата в Битрикс (событие OnSalePaymentEntitySaved при PAID = N для ранее оплаченного платежа) отправляем запрос на возврат в Приорбанк:

public function refund(\Bitrix\Sale\Payment $payment, $refundableSum)
{
    $sessionId = $this->getStoredSessionId($payment);
    $response = $this->apiClient->request('POST', '/installment/refund', [
        'session_id' => $sessionId,
        'amount' => $refundableSum,
        'reason' => 'customer_request',
    ]);
    return !empty($response['refund_id']);
}

Отображение рассрочки на сайте

На странице товара и в корзине добавляем виджет рассрочки: при сумме заказа N долларов — «Оплатите частями от X руб./мес.».

const months = 12; // из настроек
const monthlyPayment = Math.ceil(totalPrice / months);
document.getElementById('installment-badge').textContent = `Рассрочка от ${monthlyPayment} руб./мес. × ${months} мес.`;

Что входит в работу

При заказе интеграции мы предоставляем:

  • настройку SSL-сертификатов и тестового окружения;
  • разработку API-клиента с двусторонним TLS;
  • обработчик платёжной системы с сохранением сессий;
  • колбэк-контроллер с верификацией подписи;
  • реализацию полных возвратов;
  • виджет рассрочки для всех страниц;
  • документацию по установке и поддержке.

Сроки и стоимость

Этап Срок
Настройка SSL-сертификатов и тестового окружения 1 день
API-клиент с двусторонним TLS 1 день
Обработчик платёжной системы 2–3 дня
Колбэк и верификация подписи 1–2 дня
Возвраты 1 день
Тестирование 2 дня
Итого 9–11 дней

Стоимость рассчитывается индивидуально после анализа проекта. Закажите оценку — мы подготовим предложение за 1-2 дня.

Типичные ошибки и чек-лист

Ошибки:

  • Неправильная цепочка CA: если не добавить корневой сертификат, SSL-рукопожатие не пройдёт.
  • Игнорирование тестового окружения: на бою могут вылезти ошибки сертификатов.
  • Отсутствие верификации подписи колбэка: банк может прислать некорректный запрос.

Чек-лист перед запуском:

  1. Проверен SSL-сертификат через openssl s_client.
  2. Тестовый запрос create/installment возвращает payment_url.
  3. Колбэк обрабатывается и меняет статус платежа.
  4. Возвраты проходят в тестовом режиме.
  5. Виджет корректно отображается на всех страницах.
  6. Настроена обработка ошибок API (HTTP 4xx/5xx).

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