Підключення онлайн-оплати на сайт часто супроводжується технічними нюансами: замовлення не оновлюються після успішного списання кошт, виникають проблеми з валютами або некоректно працюють серверні сповіщення (callback). Для українського бізнесу одним із найпопулярніших платіжних шлюзів залишається LiqPay від ПриватБанку. У цьому гайді ми розберемо технічні аспекти інтеграції сервісу на WordPress (WooCommerce) та OpenCart, налаштування безпеки, регулярних платежів та роботу з валютами.

Що таке LiqPay Checkout і як він працює

LiqPay Checkout — це готова платіжна сторінка або модальне вікно, на якому клієнт вводить дані своєї банківської картки безпосередньо в захищеному середовищі платіжної системи. Окрім класичних карток Visa та Mastercard, інтерфейс підтримує Apple Pay, Google Pay та інші методи залежно від налаштувань вашого акаунта мерчанта.

Цей підхід знімає з власника сайту більшість вимог стандарту PCI DSS, оскільки чутливі платіжні дані не проходять через сервер інтернет-магазину. Завдання сайту зводиться до формування правильного запиту на оплату, перенаправлення користувача та коректної обробки серверного сповіщення (callback).

Що підготувати перед початком інтеграції

Перш ніж встановлювати платіжний модуль на сайт, необхідно підготувати технічну базу:

  • Акаунт мерчанта: зареєстрований бізнес-акаунт у системі LiqPay та підписаний договір еквайрингу.
  • API-ключі: публічний ключ (public_key) та приватний ключ (private_key), які використовуються для підписання запитів.
  • Протокол HTTPS: обов’язкова умова для роботи будь-яких платіжних систем та безпеки користувачів.
  • Тестове середовище: можливість проведення тестових платежів перед запуском у продакшн.

Підключення LiqPay до WooCommerce

Для інтернет-магазинів на WordPress зазвичай використовують офіційні або перевірені сторонні плагіни інтеграції WooCommerce LiqPay.

Основні кроки налаштування:

  1. Встановіть та активуйте плагін платіжного шлюзу у вашій адмін-панелі WordPress.
  2. У налаштуваннях WooCommerce перейдіть у розділ «Оплата» (Payments) та знайдіть LiqPay.
  3. Введіть ваш public_key та private_key, отримані в особистому кабінеті мерчанта.
  4. Налаштуйте відповідність статусів замовлень (наприклад, успішна оплата переводить замовлення у статус «Обробляється» або «Виконано»).

Після збереження налаштувань обов’язково зробіть тестовий платіж на мінімальну суму, щоб переконатися, що статус замовлення в адмінці змінюється автоматично після завершення транзакції.

Інтеграція LiqPay в OpenCart / ocStore

Архітектура OpenCart вимагає уважного підбору модуля під конкретну версію движка (наприклад, ocStore 3.x або 4.x).

  • Сумісність: переконайтеся, що версія модуля відповідає вашій версії OpenCart. Використання застарілих модифікаторів (OCMOD) може призвести до конфліктів у кошику.
  • Налаштування callback-адреси: шлюз повинен знати, куди надсилати сповіщення про статус транзакції. Зазвичай модуль генерує цей шлях автоматично.
  • Статуси замовлень: чітко розмежуйте статуси для очікування оплати, успішної транзакції та скасування.

Валюти: EUR та UAH у платіжних затягах

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

  • Валюта каталогу: те, що бачить користувач на сторінці товару.
  • Валюта запиту: параметр, який передається в систему LiqPay (наприклад, UAH або EUR).
  • Конвертація та курс НБУ: Для відображення орієнтовного еквівалента в іншій валюті часто використовують курс Національного банку України (наприклад, через офіційний API НБУ). Проте пам’ятайте, що фактична сума списання та комісії за конвертацію залежать від умов банку-емтента картки клієнта та вашого договору мерчанта. Не гарантуйте підтримку специфічних валют без попереднього узгодження з підтримкою платіжної системи.

Регулярні платежі та підписки

Якщо ваш бізнес побудований на моделі рекурентних платежів (членство, щомісячні послуги, цифрові підписки), LiqPay дозволяє налаштувати автоматичні списання. Для цього під час ініціалізації платежу через Checkout використовується параметр action=subscribe. Стандартна реалізація покриває створення підписки, регулярні списання, зміну суми та скасування. Проте складні сценарії (наприклад, тимчасова пауза чи кастомні графіки) часто вимагають індивідуального доопрацювання логіки на боці сайту.

Безпека та обробка серверних сповіщень (Callback)

Критична помилка багатьох розробників — оновлювати статус замовлення лише тоді, коли користувач повертається на сторінку успішної оплати (result_url). Клієнт може закрити вкладку одразу після списання грошей, і замовлення залишиться неоплаченим у системі.

Правильна архітектура базується на серверних запитах (Callback):

  • LiqPay надсилає POST-запит на ваш сервер із параметрами data та signature.
  • Сервер повинен обчислити підпис самостійно за допомогою приватного ключа та звірити його з отриманим signature.
  • Необхідно перевірити суму, валюту, номер замовлення та фінальний статус транзакції (наприклад, success або sandbox).
  • Реалізуйте захист від повторної обробки одного й того самого callback-запиту, щоб уникнути подвійного нарахування послуг чи створення зайвих сутностей.

Коли стандартного плагіна недостатньо

Готові платіжні модулі закривають 90% стандартних завдань інтернет-магазинів. Проте власники бізнесу часто стикаються з нестандартними потребами: інтеграція оплати в особистий кабінет користувача без перенаправлення, складне розбиття платежів (split-оплата), кастомна генерація інвойсів чи глибока синхронізація з внутрішніми ERP-системами. У таких випадках потрібна розробка власних плагінів і модулів або пряма інтеграція через API.

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

Перед тим як увімкнути прийом реальних платежів, перевірте такі сценарії:

  • Успішна транзакція: кошти списуються, статус замовлення в адмінці змінюється автоматично.
  • Невдалий платіж: недостатньо коштів або помилка картки — замовлення отримує статус відхиленого.
  • Скасування платежі та повернення коштів.
  • Коректність передачі суми, податків та обраної валюти.
  • Коректна робота інтерфейсу на мобільних пристроях.

Якщо під час налаштування виникають технічні труднощі, наша команда готова допомогти з налаштуванням або аудитом проєкту. Детальніше про форматах роботи та послуги можна дізнатися на сторінці технічної підтримки сайтів.

Часті запитання

Що робити, якщо гроші списалися, але замовлення на сайті залишилося неоплаченим?

Найчастіше це означає, що серверний callback не дійшов до сайту через блокування хостингом, проблеми з чинним SSL-сертифікатом або неправильно налаштовані правила перенаправлення. Потрібно перевірити логи сервера та наявність запитів у системі LiqPay.

Чи можна налаштувати повернення коштів автоматично з адмін-панелі сайту?

Стандартні модулі для WooCommerce та OpenCart зазвичай підтримують базові операції повернення коштів безпосередньо з панелі управління інтернет-магазину, проте це залежить від налаштувань вашого мерчант-акаунта та версії платіжного плагіна.

Чому відрізняються суми при оплаті у валюті, відмінній від гривні?

Це пов’язано з крос-курсами конвертації вашого банку, банка-емтента картки клієнта та правилами міжнародних платіжних систем. Сайт передає лише номінал, встановлений у системі.

Плануєте запуск нового проекту, складну інтеграцію чи шукаєте надійну команду для технічної підтримки та прискорення існуючого сайту? Опишіть ваше завдання — у VORONOV Solutions ми проведемо технічний аудит і запропонуємо оптимальний формат співпраці (Fixed Price, пакет годин або Retainer).