Модуль оплати NovaPay для OpenCart
Автор документа | @Ірина Шаповал |
|---|---|
Дата актуалізації | Mar 10, 2026 |
Хто актуалізував |
|
БА |
|
Розробник |
|
Тестувальник |
|
Коментар |
|
Версія документу | Зміни |
|---|---|
1.0 – перша версія (10.03.2026) | Перша версія документу |
Корисні посилання |
Модуль оплати NovaPay для OpenCart – це спеціалізований платіжний модуль для CMS OpenCart, який забезпечує прийом карткових платежів через інтернет-еквайринг NovaPay.
CMS (Content Management System) у контексті e-commerce – це система, на базі якої можна створити інтернет-магазин, керувати контентом, товарами, сторінками та налаштуваннями сайту через адмін-панель без програмування.
Технічні вимоги
Вимоги до системи:
WordPress: php8.2 +
OpenCart 4: php8.0 +
OpenCart 3: php7.2+
Архітектурна взаємодія
Пряма взаємодія з API NovaPay.
Генерація підпису запитів за SHA-256.
Логування дій з модулем в CMS.
Інструкція зі встановлення модуля
Завантажити zip-архів з модулем можна за посиланням – https://github.com/NovaPay
Щоб встановити платіжний модуль необхідно виконати такі кроки:
Перехід до розділу розширень: В бічному меню OpenCart перейдіть до розділу Extensions (Розширення).
Відкриття інсталятора: Оберіть підпункт Installer.
Завантаження файлу: На сторінці Extension Installer натисніть кнопку Upload (синя кнопка з іконкою завантаження у верхньому правому куті).
Вибір архіву: У вікні, що з’явиться, виберіть zip-архів модуля (наприклад,
Opencard v._.n_novapay v.1.0.0.zip).
Важливо: завантажуйте архів цілісним, не розпаковуючи його попередньо.
Підтвердження завантаження: Після завершення операції з'явиться зелене повідомлення: “Success: The extension has been uploaded!”.
Запуск встановлення: У блоці “Installed Extensions” (Встановлені розширення) знайдіть рядок із NovaPay Payment. Натисніть кнопку Install (зелена іконка з плюсом) у колонці Action.
Дочекайтеся завершення прогрес-бару та появи напису “Success: You have modified extensions!”.
Інтеграція модуля оплати NovaPay
Платіжний модуль NovaPay Payment для CMS OpenCart забезпечує прийом карткових платежів через інтернет-еквайринг NovaPay з підтримкою сценаріїв Hold/Direct, автоматичною синхронізацією статусів замовлень та обробкою postback-повідомлень.
Основні можливості
Прийом платежів через NovaPay Acquiring;
Redirect користувача на платіжну сторінку NovaPay;
Обробка postback;
Автоматичне створення та оновлення статусів замовлень;
Скасування/повернення платежів (Void);
Підтримка сценарію утримання коштів (Hold)/пряме списання (Direct)
Логування API-запитів.
Модуль реалізує ВИКЛЮЧНО redirect-based acquiring flow.
Налаштування модуля
Щоб змінити налаштування платіжного модулю необхідно виконати такі кроки:
Перехід до розділу розширень: В бічному меню OpenCart перейдіть до розділу Extensions (Розширення).
Відкриття інсталятора: Оберіть підпункт Installer.
Вибір типу розширення: На сторінці Extensions натисніть на поле під заголовком Choose the extension type.
Встановіть тип Payments.
Перехід до редагування: У блоці Payments знайдіть рядок із Оплата через НоваПей. Натисніть кнопку Edit (синя іконка з олівцем) у колонці Action.
Основні параметри | General configuration
Параметри | Опис |
|---|---|
Exstension configuration | |
Status | Увімкнення або вимкнення плагіна. Якщо встановлено Enable – ввімкнено продуктовий режим |
Checkout sort order | Впливає на порядок відображення методів оплати, якщо у клієнта встановлено кілька варіантів |
Test/debug configuration | |
Test Mode | Активує тестовий режим, де будуть створюватись транзакції за тестовими даними. Для прийняття платежів в проді режим повинен бути вимкнений |
Log requests/responses (system/storage/logs/novapay_payment.log) | Визначає, чи будуть запити та відповіді до НоваПей зберігатися у вигляді лог-файлів. Рекомендується вмикати у випадках, коли необхідно проаналізувати або діагностувати обробку операції |
Merchant configuration | |
Merchant ID | Ідентифікатор мерчанта NovaPay. Клієнт має ввести значення, отримане після активації в NovaPay. |
Public key | Ключі, які необхідні для підпису запиту з метою безпеки |
Private key | |
Merchant configuration | |
Hold | Увімкнення або вимкнення холдування коштів |
Success URL | Посилання, на яке клієнт може перейти після успішної оплати, натиснувши відповідну кнопку на платіжній сторінці |
Failed URL | Посилання, на яке клієнт може перейти після неуспішної оплати, натиснувши відповідну кнопку на платіжній сторінці |
Після заповнення всіх полів натисніть Save.
Статуси
У налаштуваннях модуля у вкладці Order status потрібно задати власні статуси замовлень:
Параметр | Стан замовлення | Можливі статуси |
|---|---|---|
Payment Create | При створенні платежу |
|
Payment Expired | Після закінчення терміну платежу | |
Payment Processing | При обробці платежу | |
Payment Holded | При утриманні платежу | |
Payment Paid | При успішній оплаті | |
Payment Failed | При невдалій оплаті | |
Payment Voided | При анулюванні платежу |
Після зміни налаштувань статусів натисніть Save.
Синхронізація статусів
Після оплати, холду або зміни статусу NovaPay надсилає відповідь (postback) до адмін-панелі Opencart.
Статус замовлення в адмін-панелі Opencart оновлюється відповідно до стану платежу в NovaPay.
Усі зміни відображаються в історії замовлень.
Якщо статус змінюється в адмін-панелі Opencart, платіжний модуль NovaPay виконує відповідну операцію в системі еквайрингу.
Флоу оплати користувачем на сторінці Checkout
Клієнт додає товари у кошик та переходить до сторінки Checkout.
На екрані Checkout користувач вводить контактну та платіжну інформацію (ім’я, адресу, телефон, поштовий індекс).
Модуль додає NovaPay до доступних методів оплати.
Після підтвердження замовлення клієнт перенаправляється на сторінку NovaPay, де виконується оплата.
Транзакція обробляється на стороні еквайрингу NovaPay. Після завершення NovaPay надсилає postback до адмін-панелі Opencart, і статус замовлення оновлюється автоматично.
Процес роботи зовнішнього еквайрингу та платіжного модуля NovaPay
Нижче описано послідовність взаємодії між клієнтом, модулем, та системою NovaPay під час створення і виконання платіжної сесії.
Клієнт відправляє запит. Клієнт формує запит до NovaPay, передаючи тіло запиту (body) та згенерований підпис.
Пошук мерчанта. На стороні NovaPay за параметром
merchant_idвизначається мерчант, який ініціював запит.Отримання публічного ключа. У профілі мерчанта зберігається публічний ключ, який був переданий ним під час створення. Цей ключ використовується для перевірки підписів запитів.
Перевірка підпису. NovaPay за допомогою публічного ключа перевіряє, чи відповідає накладений підпис тілу запиту (
body).Створення платіжної сесії. Якщо запит успішно пройшов перевірку – створюється нова платіжна сесія.
Повернення ID сесії. У відповіді NovaPay повертає ID створеної сесії, який використовується для подальших дій.
Запит Payment від клієнта. Клієнт надсилає до NovaPay запит Payment, який ініціює створення нової операції.
Створення операцій у NovaPay. На стороні NovaPay кожен Payment створює окрему сутність операції.
Наприклад:
клієнт додає кілька товарів у кошик;
кожен товар – це окремий Payment;
для кожного Payment створюється окрема транзакція, але списання відбувається одним платежем у рамках однієї платіжної сесії.
Усі запити клієнта підписуються та перевіряються через публічний ключ мерчанта.
Відповідь на Payment. NovaPay повертає у відповіді: ID операції, посилання для відкриття фрейму оплати.
Redirect після останнього Payment. Після створення останнього платежу клієнт виконує redirect на отримане посилання платіжної сторінки.
Відкриття платіжної сторінки. Відкривається платіжна сторінка NovaPay, де користувач може ввести платіжні дані.
Введення даних карти. Клієнт вводить дані картки або обирає оплату через Apple Pay / Google Pay, після чого натискає кнопку “Сплатити”.
Обробка запиту на бекенді NovaPay. Фронтенд передає дані картки на бекенд NovaPay. Після цього сесія переходить у статус
paid.
Обробка платежу з типом холду
Якщо Payment створено з холдом, то після введення платіжних даних та авторизації, NovaPay не списує кошти, а виконує їх блокування. Сесія та операції отримують статус: hold
14. Оновлення операцій Payment. У всіх створених операціях оновлюється статус на paid.
15. Надсилання postback до адмін-панелі Opencart. NovaPay надсилає postback-запит із новим статусом платежу (paid). Адмін-панель Opencart отримує оновлення і змінює статус замовлення у системі мерчанта.