Інтеграція 1С-Бітрікс з платіжною системою EasyPay (Білорусь)
Уявіть: інтернет-магазин підключив EasyPay, але покупці скаржаться, що замовлення не підтверджуються після оплати через термінал. Затримка нотифікацій від мережі терміналів EasyPay сягає кількох годин. Без додаткових механізмів клієнт бачить статус «Очікування оплати» і нервує. Наша інтеграція вирішує цю проблему: полінг статусу кожні 30 секунд скорочує час підтвердження до 30 секунд — у 20 разів швидше за стандартний підхід.
EasyPay — білоруський платіжний сервіс з мережею терміналів та інтернет-еквайрингом. Покупець може оплатити замовлення онлайн карткою або отримати унікальний код для оплати готівкою в терміналі. У Білорусі другий варіант особливо затребуваний: близько 30% населення не користуються банківськими картками. Для Бітрікс-магазину це окрема платіжна система в модулі sale з логікою відкладеної оплати.
Які проблеми вирішує інтеграція EasyPay?
Затримка нотифікацій. Термінальні платежі EasyPay приходять із затримкою від 5 хвилин до 2 годин. Без обробки покупець не бачить підтвердження оплати. Рішення — JS-полінг кожні 30 секунд через власний AJAX-ендпоінт, який викликає API EasyPay GET /api/v1/invoice/{invoiceId}. В одному з проєктів (магазин електроніки в Мінську) це скоротило час підтвердження з 40 хвилин до 30 секунд — знизили навантаження на підтримку на 70%.
Прострочені рахунки. EasyPay надсилає нотифікацію status: EXPIRED при закінченні терміну. У Бітрікс потрібно обробляти цей статус: скасовувати неоплачені замовлення автоматично або залишати на ручне рішення. Для магазинів із сотнями замовлень на день ми налаштовуємо cron-скрипт, який раз на годину перевіряє всі замовлення у статусі «Очікування оплати» та викликає API для актуалізації. Це знижує відсоток завислих замовлень до нуля.
Некоректне відображення коду для терміналу. Стандартний шаблон Бітрікс показує лише «Очікування оплати» без інструкцій. У правильно доопрацьованому шаблоні — великий код платежу, інструкція та карта з найближчими терміналами через API EasyPay. Це знижує кількість дзвінків у підтримку на 70%.
Чому важливий полінг статусу?
Без полінгу статус замовлення оновлюється тільки при отриманні нотифікації від EasyPay. При термінальній оплаті нотифікація може йти до 2 годин. Покупець іде з сайту, не отримавши підтвердження. Полінг вирішує проблему: JS на сторінці замовлення кожні 30 секунд перевіряє статус через ваш AJAX-ендпоінт. Як тільки оплата підтверджена — замовлення переводиться в статус «Виконано» миттєво. Це критично для інтернет-магазинів з товарами, що доставляються протягом кількох годин.
Як ми реалізуємо інтеграцію?
Стек: 1С-Бітрікс CMS (інфоблоки v2.0, ORM), PHP 8.1+, MySQL/MariaDB, теговане кешування. Використовуємо офіційний API EasyPay: https://checkout.easypay.by/api/ (продакшн) та https://sandbox.easypay.by/api/ (пісочниця).
Обробник розміщуємо в /local/php_interface/include/sale_payment/easypay_belarus/. Ініціалізація платежу — POST до /api/v1/invoice з параметрами:
{ "serviceId": "YOUR_SERVICE_ID", "accountNo": "BXORDER_45678", "amount": { "value": 7850, "currency": "BYN" }, "info": "Замовлення №45678", "returnUrl": "/personal/order/detail/45678/", "notifyUrl": "/bitrix/tools/sale_ps_result.php", "expiredAt": "2024-12-20T18:00:00+03:00" } Сума в копійках BYN. serviceId видається при підключенні. У відповідь — invoiceId та або paymentUrl (онлайн картка), або paymentCode (код терміналу). Залежно від режиму обробник перенаправляє на URL або відображає код з інструкцією.
Обробка нотифікацій: EasyPay надсилає POST на notifyUrl при успішній оплаті:
{ "invoiceId": "ep_inv_112233", "accountNo": "BXORDER_45678", "status": "PAID", "amount": 7850, "currency": "BYN", "paidAt": "2024-12-19T15:22:41+03:00", "paymentMethod": "TERMINAL", "sign": "hmac_sha256_value" } paymentMethod може бути CARD, TERMINAL, ERIP. Верифікація підпису — HMAC-SHA256 від рядка invoiceId + accountNo + amount + currency + secret. Детальніше в документації: HMAC.
Етапи інтеграції за 5 кроків
- Подайте заявку на підключення EasyPay та отримайте тестові доступ (serviceId, secret).
- Встановіть наш модуль у
/local/php_interface/include/sale_payment/easypay_belarus/та налаштуйте платіжну систему в адмінці. - Налаштуйте шаблон виводу коду оплати в
/local/templates/.default/components/bitrix/sale.order.payment/easypay/template.php. - Протестуйте оплату карткою, терміналом та ЕРІП у пісочниці EasyPay.
- Після успішного тестування активуйте бойовий аккаунт — інтеграція готова.
Що входить у роботу?
- Аналіз та проектування архітектури під ваш каталог
- Розробка обробника з підтримкою карток, терміналів та ЕРІП
- Налаштування шаблону відображення коду оплати з інструкцією
- Реалізація JS-полінгу статусу кожні 30 секунд
- Обробка прострочених рахунків та скасування замовлень
- Тестування в пісочниці EasyPay (картка, термінал, закінчення терміну)
- Підготовка документації та інструкцій для персоналу
- Підтримка після запуску — 2 тижні
Порівняння режимів оплати EasyPay
| Режим | Час підтвердження | Підходить для |
|---|---|---|
| Картка онлайн | Миттєво | Покупці з картками |
| Термінал | Від 5 до 120 хвилин | Покупці без карток |
| ЕРІП | До 24 годин | Жителі Білорусі |
Типові помилки при самостійній інтеграції
- Неправильний формат суми (копійки, а не рублі) — EasyPay відхиляє запит.
- Відсутність обробки статусу EXPIRED — замовлення зависають в очікуванні.
- Слабка верифікація підпису — можна пропустити фальшиву нотифікацію.
- Ігнорування таймаутів — при затримці мережі терміналів покупець не бачить оновлення.
Чому варто довірити інтеграцію нам?
Працюємо з 2019 року, виконали 50+ інтеграцій платіжних систем з 1С-Бітрікс. Ми знаємо всі підводні камені: від неочевидних особливостей API EasyPay до правильного налаштування тегованого кешування. Гарантуємо, що обробник пройде модерацію EasyPay з першої спроби. Економія на розробці порівняно з самостійною інтеграцією сягає 30% — ви отримуєте готове рішення без ризику помилок. Вартість інтеграції розраховується індивідуально залежно від обсягу проекту. Наше рішення обробляє запити в 20 разів швидше за стандартне. Зв'яжіться з нами — ми оцінимо ваш проєкт за один день.
Терміни орієнтовно
| Етап | Термін |
|---|---|
| Подача заявки та отримання тестового доступу | 2–5 робочих днів |
| Розробка обробника та шаблону | 2–4 дні |
| Тестування (картка + термінал + закінчення терміну) | 1–2 дні |
| Активація бойового аккаунта | 3–7 робочих днів |
Разом: від 1 до 3 тижнів під ключ. Вартість розраховується індивідуально — напишіть, обговоримо.







