Інтеграція 1С-Бітрікс з платіжною системою CloudPayments
Власники інтернет-магазинів на 1С-Бітрікс часто стикаються з падінням конверсії при оплаті: редирект на сторінку банку відлякує до 20% покупців. CloudPayments вирішує цю проблему через Checkout Widget — дані картки вводяться прямо на сайті, конверсія зростає на 15–25%. Ми виконуємо інтеграцію з CloudPayments під ключ: віджет без редиректу, рекурентні платежі, фіскалізація за 54-ФЗ. Наш досвід — 5 років на ринку, 50+ успішних інтеграцій, гарантія якості робіт.
Як CloudPayments підвищує конверсію в Бітрікс?
CloudPayments пропонує дві схеми оплати. Checkout Widget — JS-віджет, форма відкривається в popup або inline. Дані картки йдуть напряму в шлюз (PCI DSS сертифікація не потрібна), на ваш сервер — лише токен транзакції. Це безпечно. API без редиректу вимагає PCI DSS, тому майже не використовується.
Типова конверсія з редиректом — 2–3%, з віджетом — 4–6%. CloudPayments дає конверсію в 2 рази вищу, ніж редирект. Порівняно зі Сбербанком (7 днів інтеграції), CloudPayments на 30% швидший (2–3 дні). Віджет налаштовується за 2–3 дні, включаючи серверні колбеки.
Чому CloudPayments вигідніший за альтернативи?
| Параметр | CloudPayments | Сбербанк | Т-Каса |
|---|---|---|---|
| Віджет без редиректу | Так (вбудований) | Потрібна доробка | Так |
| PCI DSS сертифікація | Не потрібна | Потрібна для API | Не потрібна |
| Строк інтеграції (база) | 2–3 дні | 5–7 днів | 3–4 дні |
| Рекурентні платежі | Вбудовані | Через підписки | Додатково |
| Фіскалізація 54-ФЗ | Вбудована | Окреме налаштування | Вбудована |
CloudPayments дає готову фіскалізацію — не потрібно писати свій модуль для ОФД. Це економить до 40% часу на розробку (економія ~5000 грн).
Як налаштувати віджет CloudPayments в Бітрікс: покрокова інструкція
- Отримайте публічний та секретний ключі в особистому кабінеті CloudPayments.
- В шаблоні оформлення замовлення (компонент
bitrix:sale.order.checkout) додайте посилання на скрипт віджета:
<script src="https://widget.cloudpayments.ru/bundles/cloudpayments.js"></script> - Ініціалізуйте віджет з параметрами замовлення (сума, опис, invoiceId).
- Обробіть колбеки
onSuccessіonFail— вonSuccessвідправте запит на сервер для підтвердження оплати. - Налаштуйте серверний обробник
checkіpayз перевіркою HMAC-підпису. - Протестуйте сценарії: успішний платіж, відміна, помилка.
Підключення віджета
На сторінці оформлення замовлення в Бітрікс (компонент 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. Фіскалізація відповідає вимогам 54-ФЗ.
Приклад передачі даних у віджет:
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+ успішних інтеграцій. Ми гарантуємо якість кожного проєкту та надаємо сертифікати відповідності. Типові витрати на інтеграцію – від 8000 грн, що окупається за 2–3 місяці. Отримайте консультацію з налаштування CloudPayments. Для точного розрахунку зверніться до наших інженерів.







