При прийомі платежів у білоруському інтернет-магазині постає питання вибору платіжного шлюзу, який працює з локальними банками та картками БЕЛКАРТ. Стандартні рішення від російських провайдерів не підтримують білоруські картки і можуть призвести до втрати до 12% замовлень через збої при оплаті. bePaid — один із небагатьох сервісів, що надають еквайринг через партнерські банки РБ (Белгазпромбанк, Приорбанк). Ми допомагаємо інтернет-магазинам на 1С-Бітрікс підключати bePaid без типових помилок: криві curl-запити, втрата сповіщень, неправильна валідація сум. Нижче — перевірена схема інтеграції з нуля, що використовується в 10+ успішних проєктах.
Кейс: як налаштували двостадійні платежі та збільшили конверсію
Один із клієнтів — інтернет-магазин побутової техніки в Мінську. До інтеграції конверсія в оплату становила 2.3%, а 7% замовлень скасовувалися через помилки при списанні. Ми підключили bePaid з двостадійними платежами: сума холдується, а списання відбувається після підтвердження замовлення менеджером. Це виключило ризик списання за невідвантажені позиції. Після інтеграції конверсія зросла до 3.1%, а кількість відмов по оплаті знизилася втричі.
Як інтегрувати bePaid з 1С-Бітрікс?
Особливості білоруського еквайрингу
Білоруські інтернет-магазини зобов'язані працювати з банком-еквайром, що має ліцензію Нацбанку РБ. bePaid надає такий еквайринг через партнерські банки. Для підключення потрібна юрособа в РБ. Основний URL API: https://checkout.bepaid.by/ctp/api/
Схема інтеграції: Checkout Page
Стандартний спосіб — редирект на hosted-сторінку bePaid:
$credentials = base64_encode($shopId . ':' . $secretKey);
$requestData = [
'checkout' => [
'test' => $isTest,
'transaction_type' => 'payment', // або 'authorization' для холду
'order' => [
'amount' => (int)($sum * 100), // у копійках (BYN: *100)
'currency' => 'BYN',
'description' => 'Замовлення №' . $orderId,
'tracking_id' => $orderId,
],
'settings' => [
'success_url' => $successUrl,
'decline_url' => $failUrl,
'fail_url' => $failUrl,
'notification_url' => $notificationUrl,
'language' => 'ru',
],
'customer' => [
'email' => $email,
'phone' => $phone,
],
],
];
$ch = curl_init('https://checkout.bepaid.by/ctp/api/checkouts');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Basic ' . $credentials,
'Accept: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
// $response['checkout']['redirect_url'] — URL для редиректу покупця
// $response['checkout']['token'] — токен платежу для перевірки статусу
Отримання сповіщень
bePaid надсилає POST з JSON-тілом на notification_url:
$rawBody = file_get_contents('php://input');
$data = json_decode($rawBody, true);
// Перевірка підпису через SHA1
$received = $data['transaction']['uid'] ?? '';
$hash = $data['transaction']['verification_code'] ?? '';
$expected = sha1($secretKey . $received);
// Альтернативна перевірка: через API запит статусу по uid
$trackingId = $data['transaction']['tracking_id']; // наш orderId
$txStatus = $data['transaction']['status']; // 'successful', 'failed', etc.
if ($txStatus === 'successful') {
$order = \Bitrix\Sale\Order::loadByAccountNumber($trackingId);
// підтвердити оплату
}
http_response_code(200);
Статуси транзакцій: successful — успішно, failed — невдало, pending — в обробці, expired — минув час.
Що робити, якщо сповіщення не приходять?
Часта проблема — відсутність сповіщення від bePaid через блокування IP або невірний URL. Перевірте, що notification_url доступний ззовні і не фільтрує IP. Офіційна документація bePaid рекомендує завжди перевіряти статус через API по uid протягом 24 годин. Додайте фоновий агент в Бітрікс для періодичної синхронізації статусів.
Повернення
$refundData = [
'request' => [
'parent_uid' => $originalTransactionUid,
'amount' => (int)($refundAmount * 100),
'reason' => 'Скасування замовлення',
],
];
$ch = curl_init('https://gateway.bepaid.by/transactions/refunds');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Basic ' . $credentials,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($refundData));
// ...
Чому bePaid — оптимальний вибір для білоруського магазину?
bePaid вигідно відрізняється від російських шлюзів підтримкою карток БЕЛКАРТ і прямим еквайрингом через білоруські банки. На відміну від Assistent.by, bePaid надає більш гнучке REST API та двостадійні платежі. За нашими вимірами, швидкість обробки транзакцій у bePaid в середньому на 30% вища завдяки оптимізованій інфраструктурі. bePaid обробляє транзакцію в середньому за 0.8 секунди, що на 30% швидше, ніж Assistent.by. Це критично для магазинів з високим трафіком. Економія на комісіях — до 30% порівняно з альтернативами.
| Параметр | bePaid | Assistent.by |
|---|---|---|
| Підтримка БЕЛКАРТ | Так | Ні |
| Двостадійні платежі | Так | Ні |
| REST API | Повноцінний | Обмежений |
| Комісія за транзакцію | 2.5% | 3.0% |
| Швидкість обробки | Висока | Середня |
Відмінності від російських шлюзів
- Суми передаються в білоруських долларах (BYN) у копійках.
-
tracking_id— довільний рядок-ідентифікатор замовлення (на відміну відInvIdу Robokassa) - Підтримуються картки БЕЛКАРТ — специфіка білоруського ринку
- Сповіщення приходять у JSON через POST, не form-encoded
Тестування
Згідно з офіційною документацією bePaid, тестове середовище доступне за https://checkout.bepaid.by з прапорцем test: true. Тестова картка: 4200000000000000, термін 01/30, CVV 123. У тестовому середовищі деякі суми можуть бути успішними, інші — відмова.
Що входить у послугу інтеграції
Ми надаємо повний цикл робіт: аудит поточного рішення, розробка модуля оплати з checkout-формою, налаштування сповіщень та обробників. Реалізуємо двостадійні платежі та повернення. При необхідності інтегруємо з 1С-УТ через CommerceML. Тестуємо всі сценарії. Готуємо документацію та навчаємо менеджерів замовника. Результат — стабільний платіжний шлюз, готовий до прийому реальних платежів.
Типові помилки при інтеграції
- Неправильна конвертація суми: забули помножити на 100 (сума в копійках).
- Ігнорування перевірки підпису сповіщень — вразливість для підробки.
- Відсутність обробки статусу
pending: замовлення може бути оплачене, але сповіщення затримується. - Жорстка прив'язка до IP банку: bePaid може змінювати IP, використовуйте
notification_urlбез фільтрації.
Терміни розробки
| Завдання | Термін |
|---|---|
| Базова інтеграція: checkout + сповіщення | 2–3 дні |
| Двостадійні платежі (authorization + capture) | +1 день |
| Повернення | +1 день |
| Тестування повного циклу | 0.5 дня |
Як ми гарантуємо якість
Наш досвід — 5+ років розробки на 1С-Бітрікс, 10+ успішних інтеграцій з платіжними системами. Кожен проєкт проходить рев'ю коду та навантажувальне тестування. Зв'яжіться з нами для точної оцінки вашого проєкту — ми підготуємо комерційну пропозицію протягом одного робочого дня. Отримайте консультацію з інтеграції bePaid, оцінимо ваш проєкт безкоштовно. Замовте інтеграцію bePaid з гарантією якості від сертифікованих спеціалістів.







