Интеграция 1С-Битрикс с CloudPayments: виджет, подписки, фискализация

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

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

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

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

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

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

Владельцы интернет-магазинов на 1С-Битрикс часто сталкиваются с падением конверсии при оплате: редирект на страницу банка отпугивает до 20% покупателей. CloudPayments решает эту проблему через Checkout Widget — данные карты вводятся прямо на сайте, конверсия растёт на 15–25%. Мы выполняем интеграцию с CloudPayments под ключ: виджет без редиректа, рекуррентные платежи, фискализация по 54-ФЗ. По нашим данным, стоимость интеграции обычно составляет от 30 000 до 70 000 руб в зависимости от объёма работ.

Как CloudPayments повышает конверсию в Битрикс?

CloudPayments предлагает две схемы оплаты. Checkout Widget — JS-виджет, форма открывается в popup или inline. Данные карты уходят напрямую в шлюз (PCI DSS), на ваш сервер — только токен транзакции. Это безопасно и не требует сертификации. API без редиректа требует, чтобы магазин собирал данные карты самостоятельно и передавал через REST — такой подход почти не используется из-за необходимости PCI DSS.

Типичная конверсия с редиректом — 2–3%, с виджетом — 4–6%. Разница особенно заметна на мобильных устройствах. CloudPayments даёт конверсию в 2 раза выше, чем при использовании редиректа. Виджет настраивается за 2–3 дня, включая серверные колбэки. Для сравнения: интеграция с Сбербанком через API занимает 5–7 дней, конверсия ниже.

Почему CloudPayments выгоднее альтернатив?

Параметр CloudPayments Сбербанк Т-Касса
Виджет без редиректа Да (встроен) Требуется доработка Да
PCI DSS сертификация Не требуется Требуется для API Не требуется
Срок интеграции (база) 2–3 дня 5–7 дней 3–4 дня
Рекуррентные платежи Встроенные Через подписки Дополнительно
Фискализация 54-ФЗ Встроенная Отдельная настройка Встроенная

CloudPayments даёт готовую фискализацию — не нужно писать свой модуль для ОФД. Это экономит до 40% времени на разработку.

Как настроить виджет CloudPayments в Битрикс: пошаговая инструкция

  1. Получите публичный и секретный ключи в личном кабинете CloudPayments.
  2. В шаблоне оформления заказа (компонент bitrix:sale.order.checkout) добавьте ссылку на скрипт виджета:
<script src="https://widget.cloudpayments.ru/bundles/cloudpayments.js"></script>
  1. Инициализируйте виджет с параметрами заказа (сумма, описание, invoiceId).
  2. Обработайте колбэки onSuccess и onFail — в onSuccess отправьте запрос на сервер для подтверждения оплаты.
  3. Настройте серверный обработчик check и pay с проверкой HMAC-подписи.
  4. Протестируйте сценарии: успешный платёж, отмена, ошибка.

Подключение виджета

На странице оформления заказа в Битрикс (компонент bitrix:sale.order.checkout) добавляем скрипт и инициализируем виджет:

<script src="https://widget.cloudpayments.ru/bundles/cloudpayments.js"></script>

<script>
var widget = new cp.CloudPayments({language: 'ru-RU'});
widget.pay('auth',  // 'auth' — двухстадийная, 'charge' — одностадийная
    {
        publicId: 'pk_XXXXX',
        description: 'Оплата заказа #<?= $orderId ?>',
        amount: <?= $amount ?>,
        currency: 'RUB',
        invoiceId: '<?= $orderId ?>',
        accountId: '<?= $userId ?>',
        skin: 'mini',
        data: {
            orderId: '<?= $orderId ?>',
            csrfToken: '<?= bitrix_sessid() ?>',
        }
    },
    {
        onSuccess: function(options) {
            // Платёж прошёл — уведомить сервер
            fetch('/bitrix/tools/sale_ps_result.php', {
                method: 'POST',
                body: JSON.stringify({ orderId: options.invoiceId }),
            });
        },
        onFail: function(reason, options) {
            console.error('Payment failed:', reason);
        }
    }
);
</script>

В Битрикс виджет подключается в шаблоне компонента или в result_modifier.php. Мы передаём invoiceId — номер заказа, по которому потом подтверждаем оплату.

Серверная обработка: check и pay уведомления

CloudPayments отправляет два POST-запроса на ваш эндпоинт: Check — перед списанием, магазин должен ответить {"code":0}, если заказ существует; Pay — после успешного списания, подтверждение оплаты.

Обработчик (local/payment/cloudpayments/callback.php):

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

// Проверка HMAC подписи
$hmac = base64_encode(hash_hmac('sha256', file_get_contents('php://input'), $apiSecret, true));
if ($hmac !== $_SERVER['HTTP_CONTENT_HMAC']) {
    http_response_code(403);
    exit;
}

$invoiceId = $data['InvoiceId'];  // наш orderId
$status    = $data['Status'];     // 'Completed', 'Cancelled' и т.д.

if ($status === 'Completed') {
    // Найти платёж по orderId, подтвердить
    $order = \Bitrix\Sale\Order::loadByAccountNumber($invoiceId);
    $paymentCollection = $order->getPaymentCollection();
    foreach ($paymentCollection as $payment) {
        if ($payment->getPaySystem()->getField('CODE') === 'cloudpayments') {
            $payment->setPaid('Y');
        }
    }
    $order->save();
}

header('Content-Type: application/json');
echo json_encode(['code' => 0]);

Проверка подписи обязательна. CloudPayments передаёт HMAC SHA-256 в заголовке Content-HMAC. Без проверки злоумышленник может подтвердить оплату фальшивым POST. Подробнее: Wikipedia: HMAC.

Частая ошибка: неверный HMAC Если код отвечает 403, проверьте, что вы используете секретный ключ (не публичный) и что тело запроса берётся сырым (file_get_contents('php://input')). В PHP вычисляйте HMAC до декодирования JSON.

Рекуррентные платежи

CloudPayments поддерживает подписки: при первом платеже создаётся токен карты (Token), последующие списания делаются без участия покупателя:

// Первый платёж с сохранением токена — через виджет с параметром createReceipt
// Последующие платежи через API
$response = $this->apiRequest('payments/tokens/charge', [
    'Amount'      => 999,
    'Currency'    => 'RUB',
    'InvoiceId'   => $subscriptionId,
    'AccountId'   => $userId,
    'Token'       => $savedToken,
    'Description' => 'Подписка за февраль',
]);

Токен хранится в базе (например, в HL-блоке), привязанный к пользователю Битрикс. Комиссия за рекуррентные платежи такая же, как за обычные.

Что нужно для фискализации?

CloudPayments интегрируется с онлайн-кассами через параметр cloudPayments.CustomerReceipt в запросе виджета. Передаёте массив позиций заказа, ставку НДС, систему налогообложения. CloudPayments сам формирует чек через подключённую кассу и отправляет его покупателю на email или SMS.

Пример передачи данных в виджет:

var receipt = {
    Items: [
        {
            label: 'Товар 1',
            price: 500.00,
            quantity: 1,
            amount: 500.00,
            vat: 20,
        }
    ],
    taxationSystem: 0, // ОСН
    email: '[email protected]',
    phone: '+71234567890',
};
widget.pay('charge', { ..., cloudPayments: { customerReceipt: receipt } });

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

При заказе интеграции вы получаете:

  • Настройка виджета на странице оформления заказа.
  • Обработчик уведомлений check/pay с проверкой подписи.
  • Интеграция рекуррентных платежей (опционально).
  • Фискализация с передачей чеков (опционально).
  • Тестирование всех сценариев: успех, отмена, ошибка.
  • Документация по интеграции и доступы (логи, админка).
  • Консультации по настройке онлайн-кассы в CloudPayments.

Сроки разработки

Задача Срок
Базовая интеграция: виджет + check/pay callbacks 2–3 дня
Двухстадийные платежи (auth + confirm) +1 день
Рекуррентные платежи +2–3 дня
Фискализация +1–2 дня
Тестирование и отладка 1 день

Наш опыт: более 5 лет работы с Битрикс и платёжными системами, 50+ успешных интеграций. Получите консультацию по настройке CloudPayments. Свяжитесь с нами — мы рассчитаем точные сроки за 1 день. Для точного расчёта обратитесь к нашим инженерам.