CMS плагін NovaPay
Плагін NovaPay для Wordpress|WooCommerce – це спеціалізований платіжний плагін для магазинів. Він виконує роль платіжного шлюзу, забезпечує еквайринг через NovaPay, підтримує холдування та синхронізацію статусів транзакцій між NovaPay і WooCommerce.
CMS (Content Management System) у контексті e-commerce – це система, на базі якої можна створити інтернет-магазин, керувати контентом, товарами, сторінками та налаштуваннями сайту через адмін-панель без програмування. Наприклад, WordPress у поєднанні з WooCommerce перетворюється на повноцінну e-commerce платформу.
Інструкція зі встановлення плагіна
Завантажити zip-архів з плагіном можна за посиланням – https://github.com/NovaPay
Вимоги до системи:
WordPress: версія 6.8 або вище
WooCommerce: версія 8.0 або вище
Встановлення через завантаження архіву
В адмін-панелі WordPress перейдіть до розділу Плагіни.
Натисніть Додати плагін.
На екрані з плагінами оберіть опцію Завантажити плагін.
Натисніть Вибрати файл.
Виберіть архів плагіна (.zip) без розпакування.
Натисніть Встановити зараз.
Після встановлення активуйте плагін.
Оновлення або перевстановлення (якщо плагін уже встановлений)
Система покаже екран порівняння версій (поточної та завантаженої). Оберіть дію: Замінити поточну версію завантаженою або Скасувати та повернутися.
Інтеграція плагіну NovaPay з WooCommerce
Плагін NovaPay для WooCommerce забезпечує повну інтеграцію платіжних операцій, синхронізацію статусів замовлень та підтримку сценаріїв Hold/Direct.
Основні можливості:
Двосторонній обмін статусами замовлень і платежів між NovaPay та WooCommerce.
Автоматичне оновлення статусу замовлення після оплати або зміни стану платежу.
Відображення всіх транзакційних подій.
Підтримка сценарію утримання коштів (Hold)/пряме списання (Direct).
Сценарій Hold
Під час оформлення замовлення кошти клієнта блокуються (холдяться) на рахунку.
Мерчант перевіряє наявність товарів на складі та виконує необхідні дії у WooCommerce:
Підтвердження холдування – кошти списуються з рахунку клієнта.
Часткове підтвердження – уся сума була захолдована, але списуються кошти лише за доступні товари, а залишок автоматично повертається клієнту.
Якщо сума списання була захолдована і потрібно її змінити (не може бути в більшу сторону) – застосовується метод Complete hold із скоригованою сумою, а залишок автоматично повертається.
Скасування холдування – кошти розморожуються у разі відсутності товару або рішення не проводити операцію.
Скасування платежу – можливе в день оплати замовлення (до 23:59). Статус змінюється з “На утриманні” на “Повернено”.
Якщо вже було виконано Complete hold, то скасування платежу більше не спрацює – навіть у той самий день.
Для скасування: у блоці “Позиція” → натиснути “Повернення” → ввести суму → обрати “Відшкодовано через NovaPay Gateway”.
Налаштування плагіна
Після активації плагіна перейдіть: WooCommerce → Налаштування → Платежі → NovaPay Gateway → Керувати
Основні параметри
№ | Параметри | Опис |
|---|---|---|
1 | Enable/Disable | Увімкнення або вимкнення плагіна. Якщо встановлено Enable – ввімкнено продуктовий режим |
2 | Test Mode | Активує тестовий режим, де будуть створюватись транзакції за тестовими даними. Для прийняття платежів в проді режим повинен бути вимкнений. |
3 | Merchant ID | Ідентифікатор мерчанта NovaPay. Клієнт має ввести значення, отримане після активації в NovaPay. |
4 | Public key | Ключі, які необхідні для підпису запиту з метою безпеки |
5 | Private key | |
6 | Payment type | Спосіб списання коштів: прямий або утримання. Значення за замовчуванням – прямий |
Після заповнення всіх полів натисніть Зберегти зміни.
Статуси
У налаштуваннях плагіна, під основними параметрами, потрібно задати власні статуси операцій:
Параметр | Стан замовлення | Можливі статуси |
|---|---|---|
Status when Payment Action Created | При створенні платежу |
|
Status when Payment Action Expired | Після закінчення терміну платежу | |
Status when Payment Action Processing | При обробці платежу | |
Status when Payment Action Holded | При утриманні платежу | |
Status when Payment Action Hold Confirmed | При підтвердженні утримання платежу | |
Status when Payment Action Hold Completion | При обробці завершення утримання платежу | |
Status when Payment Action Paid | При успішній оплаті | |
Status when Payment Action failed | При невдалій оплаті | |
Status when Payment Action void | При анулюванні платежу | |
Status when Payment Action voided | При анулюванні платежу |
Після зміни налаштувань статусів натисніть Зберегти зміни.
Синхронізація статусів
Після оплати, холду або зміни статусу NovaPay надсилає відповідь (postback) до WooCommerce.
Статус замовлення в WooCommerce оновлюється відповідно до стану платежу в NovaPay.
Усі зміни відображаються в історії транзакцій.
Якщо статус змінюється у WooCommerce, плагін NovaPay виконує відповідну операцію в системі еквайрингу.
Флоу оплати користувачем на сторінці Checkout
Клієнт додає товари у кошик та переходить до сторінки Checkout.
На екрані Checkout користувач вводить контактну та платіжну інформацію (ім’я, адресу, телефон, поштовий індекс).
Плагін додає кнопку NovaPay до доступних методів оплати.
Після підтвердження замовлення клієнт перенаправляється на сторінку NovaPay, де виконується оплата.
Транзакція обробляється на стороні еквайрингу NovaPay. Після завершення NovaPay надсилає postback до WooCommerce, і статус замовлення оновлюється автоматично.
Флоу роботи зовнішнього еквайрингу та плагіна NovaPay
Нижче описано послідовність взаємодії між клієнтом, плагіном, та системою NovaPay під час створення і виконання платіжної сесії.
Клієнт відправляє запит. Клієнт формує запит до NovaPay, передаючи тіло запиту (body) та згенерований підпис.
Пошук мерчанта. На стороні NovaPay за параметром
merchant_idвизначається мерчант, який ініціював запит.Отримання публічного ключа. У профілі мерчанта зберігається публічний ключ, який був переданий ним під час створення. Цей ключ використовується для перевірки підписів запитів.
Перевірка підпису. NovaPay за допомогою публічного ключа перевіряє, чи відповідає накладений підпис тілу запиту (
body).Створення платіжної сесії. Якщо запит успішно пройшов перевірку – створюється нова платіжна сесія. Під час створення сесії продавець передає
callback_url, на який NovaPay надсилатиме postback-запити для інформування про статус платежу.Повернення ID сесії. У відповіді NovaPay повертає ID створеної сесії, який використовується для подальших дій.
Запит Payment від клієнта. Клієнт надсилає до NovaPay запит Payment, який ініціює створення нової операції.
Створення операцій у NovaPay. На стороні NovaPay кожен Payment створює окрему сутність операції.
Наприклад:
клієнт додає кілька товарів у кошик;
кожен товар – це окремий Payment;
для кожного Payment створюється три операції, що виконуються послідовно.
Усі запити клієнта підписуються та перевіряються через публічний ключ мерчанта.
Відповідь на Payment. NovaPay повертає у відповіді: ID операції, посилання для відкриття фрейму оплати.
10. Redirect після останнього Payment. Після створення останнього платежу клієнт виконує redirect на отримане посилання платіжної сторінки.
11. Відкриття платіжної сторінки. Відкривається платіжна сторінка NovaPay, де користувач може ввести платіжні дані.
12. Введення даних карти. Клієнт вводить дані картки або обирає оплату через Apple Pay / Google Pay, після чого натискає кнопку «Сплатити».
13. Обробка запиту на бекенді NovaPay. Фронтенд передає дані картки на бекенд NovaPay. Після цього сесія переходить у статус paid.
14. Оновлення операцій Payment. У всіх створених операціях оновлюється статус на paid.
15. Надсилання postback до плагіна. NovaPay надсилає postback-запит із новим статусом платежу (paid) до плагіна. Плагін отримує оновлення і змінює статус замовлення у системі мерчанта.