Зв'язатись
Payments · OpenCart

EasyPay для OpenCart — оплата карткою, Apple Pay і Google Pay

Модуль EasyPay для OpenCart 2.3, 3.x і 4.x: оплата карткою, Apple Pay і Google Pay, статус замовлення зі звіркою через API EasyPay, захист від недоплати, тестовий режим без договору. Pro — журнал платежів, повернення, звірка, нагадування про неоплату й таймер оплати.

Завантажити безкоштовно
Версія
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Сумісність
OpenCart 2.3.0.x, 3.0.x та 4.0.2 – 4.1.x
Платформа
OpenCart
EasyPay для OpenCart — оплата карткою, Apple Pay і Google Pay

Що включено в ліцензії

Функція Free Pro
Оплата карткою Visa/Mastercard, Apple Pay і Google Pay на захищеній сторінці EasyPay
Статус замовлення — лише з відповіді orderState EasyPay: підроблене сповіщення нічого не змінить
Підпис запитів і сповіщень SecretKey, ключ зберігається зашифрованим
Захист від недоплати: сума з EasyPay звіряється з сумою замовлення
Замовлення закривається, навіть якщо сповіщення не дійшло, — коли покупець повертається в магазин
Причина відмови банку в історії замовлення, кошик відновлюється для нової спроби
Тестовий режим з публічними ключами EasyPay і перевірка ключів однією кнопкою
Окремі статуси для очікування, оплати, відмови й повернення
Спосіб оплати ховається для кошика не в гривні
Українська та англійська локалізація адмінки й вітрини
Журнал платежів зі станом в EasyPay поруч зі статусом замовлення
Повернення коштів з адмінки, повне й часткове
Звірка статусу платежу однією кнопкою
Нагадування EasyPay про неоплачене замовлення листом і SMS/Viber
Таймер оплати: скільки хвилин сторінка оплати приймає платіж

CatCode EasyPay — модуль оплати через EasyPay для OpenCart 2.3, 3.x і 4.x. Покупець платить карткою Visa/Mastercard, Apple Pay або Google Pay на захищеній сторінці EasyPay, а замовлення в магазині саме переходить в оплачений статус. EasyPay надсилає підписане сповіщення, модуль перевіряє підпис, окремо питає в EasyPay статус платежу і звіряє суму. Лише після цього замовлення стає оплаченим, тому підробити оплату запитом на сайт не вийде.

Базова версія безкоштовна і без обмежень за кількістю платежів: приймання оплати, сповіщення зі звіркою статусу, захист від недоплати і тестовий режим з публічними ключами EasyPay. Pro додає журнал платежів, повне й часткове повернення коштів з адмінки, звірку статусу однією кнопкою, нагадування EasyPay про неоплачене замовлення і таймер оплати.

Живе демо

Щоб подивитися модуль у роботі, договір з EasyPay не потрібен. Установіть безкоштовну версію й увімкніть «Тестовий режим»: модуль працює з публічним тестовим мерчантом EasyPay (easypay-test / MERCHANT-TEST). Оформіть замовлення у своєму магазині, і вас перекине на справжню тестову сторінку оплати EasyPay з номером замовлення й сумою. Реальні гроші не рухаються.

Скріни нижче зроблено під час наскрізного тесту на наших демо-магазинах OpenCart 4.x, OpenCart 3.x і OpenCart 2.3: чекаут, сторінка оплати, налаштування, журнал платежів і повернення.

Як це виглядає для покупця

У чекауті це звичайний спосіб оплати «Оплата карткою, Apple Pay, Google Pay (EasyPay)». Покупець підтверджує замовлення і тисне «Перейти до оплати». Модуль створює замовлення в EasyPay і відкриває сторінку оплати.

Спосіб оплати EasyPay у чекауті OpenCart
Крок оплати в OpenCart 4: EasyPay як звичайний спосіб оплати і кнопка «Перейти до оплати». У тестовому режимі покупець бачить попередження, що гроші не списуються.
Сторінка оплати EasyPay з номером замовлення і сумою
Сторінка EasyPay: номер замовлення, сума в гривнях, Google Pay або Apple Pay, якщо їх підключено. Дані картки вводяться на стороні EasyPay і не проходять через ваш сайт.

Після оплати EasyPay повертає покупця в магазин. Якщо оплата пройшла, він потрапляє на сторінку «Замовлення оформлено». Якщо ні, замовлення отримує статус невдалої оплати з причиною від банку, товари повертаються в кошик, а зверху — підказка спробувати ще раз. Нова спроба йде в EasyPay під новим номером, дублів не буває.

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

Що отримує адмін

Налаштування модуля EasyPay для OpenCart
Налаштування: тестовий режим, PartnerKey, ServiceKey і SecretKey (зберігається зашифрованим), готовий URL для сповіщень, Pro-ліцензія і журнал запитів для налагодження.
  • «Перевірити ключі» надсилає підписаний службовий запит до EasyPay. Помилку модуль називає конкретно: не підходить SecretKey (EasyPay відхиляє підпис) або EasyPay не знає ServiceKey. Про проблему ви дізнаєтеся в адмінці, а не від покупця.
  • Окремі статуси замовлення для «очікує оплати», «оплачено», «невдала оплата» і «повернення» — на вкладці «Статуси замовлень».
  • Історія замовлення з номером транзакції EasyPay і причиною відмови банку. Недоплату видно одразу: «сплачено 3552.18 грн при сумі замовлення 3553.18 грн — потрібна перевірка», і таке замовлення в оплачені не переходить.
  • Журнал платежів (Pro): усі платежі EasyPay одним списком — сума замовлення, сплачено, повернено, стан в EasyPay поруч зі статусом замовлення, номер транзакції і картка. Там же кнопки «Звірити» і «Повернути».
Журнал платежів EasyPay для OpenCart
Журнал платежів (Pro): оплачений платіж з кнопкою «Повернути», недоплата, що чекає перевірки, і повністю повернений платіж.
Pro-налаштування EasyPay: нагадування і час на оплату
Вкладка Pro: EasyPay сам нагадає покупцю про неоплачене замовлення листом і SMS або Viber через 15–20 хвилин, а таймер обмежує, скільки хвилин сторінка оплати приймає платіж.

Як це працює крок за кроком

  1. Покупець підтверджує замовлення з оплатою EasyPay. Модуль створює замовлення в EasyPay: номер спроби, суму, опис, адресу для сповіщень і сторінки повернення. Кожен запит підписується вашим SecretKey. Замовлення отримує статус «очікує оплати».
  2. Покупець платить на сторінці EasyPay карткою, Apple Pay або Google Pay.
  3. EasyPay надсилає сповіщення на ваш сайт. Модуль перевіряє підпис: непідписаний або підроблений запит отримує відмову, і замовлення лишається як було.
  4. Модуль сам питає в EasyPay статус цього платежу запитом orderState. Тіло сповіщення потрібне лише, щоб знайти замовлення.
  5. Сума звіряється із сумою замовлення. Якщо все збігається, замовлення стає оплаченим, і в історію записується номер транзакції. Якщо сплачено менше — замовлення лишається на перевірці з нотаткою.
  6. Покупець повертається в магазин, і модуль ще раз перевіряє статус. Якщо сповіщення затрималось, замовлення закривається тут. Повторне сповіщення дублем в історії не стає.

Скільки коштує

Безкоштовна версія — 0 грн, назавжди і без лімітів на оборот. Pro — 990 грн одноразово. Ліцензія на OpenCart діє назавжди, щорічних платежів немає. Один ключ підходить до збірок під 2.3, 3.x і 4.x; активацій дві, тобто бойовий магазин і тестова копія.

Безкоштовний 7-денний тріал EasyPay Pro в адмінці OpenCart
Тріал Pro запускається прямо з налаштувань модуля: email — і ключ для цього сайту видається одразу.

Перш ніж купувати, Pro можна увімкнути на 7 днів: вводите email і отримуєте ключ для цього сайту. Картка не потрібна, нічого не продовжується саме. Після тріалу закриваються лише Pro-функції, а приймання оплати працює далі.

Технічні вимоги

  • OpenCart 2.3.0.x, 3.0.x або 4.0.2 – 4.1.x; PHP 7.0+ для 2.3, для 3.x і 4.x — версія, яку вимагає ваш OpenCart.
  • Розширення PHP cURL, вихідні HTTPS-запити з сервера.
  • Сайт доступний з інтернету по HTTPS, щоб до нього доходили сповіщення EasyPay (без basic-auth).
  • Валюта кошика — гривня (UAH).
  • Договір з EasyPay для реальних оплат: PartnerKey, ServiceKey і SecretKey видає менеджер EasyPay. Для тестового режиму ключі не потрібні.

Що під капотом

  • Підпис у обидва боки: base64(SHA-256) від SecretKey і тіла запиту, перевірка сповіщень — порівнянням за сталий час. SecretKey зберігається в базі зашифрованим і не показується у формі.
  • Статус береться з EasyPay (orderState), а не зі сповіщення. Відмову банку модуль розпізнає навіть тоді, коли EasyPay повертає її разом із блоком помилки, і записує причину в історію замовлення.
  • Унікальні номери спроб: номер замовлення плюс випадковий суфікс. Відхилена стара спроба не зачепить уже оплачене замовлення, а оплачена стара спроба зарахується, навіть якщо покупець відкрив нову.
  • Запобіжники: пізнє сповіщення не відкотить оплачене замовлення, «Назад» після оплати не створить другий платіж, недоплата не стане оплатою, повторне сповіщення не продублює запис.
  • Повернення (Pro) рахуються накопичувально: від’ємна сума, сміття чи сума понад залишок відсікаються ще до запиту в EasyPay, а після повного повернення замовлення отримує статус «Повернено».
  • Ядро OpenCart не патчиться: у 4.x модуль ставиться як звичайне розширення, у 3.x і 2.3 — без ocmod-правок. Таблиця платежів при видаленні модуля лишається, історію не втратите.

Як встановити

  1. OpenCart 4.x: Розширення → Встановлення розширень → завантажте cc_easypay.ocmod.zip і натисніть «Встановити». Далі Розширення → Оплата → «EasyPay — оплата карткою, Apple Pay, Google Pay» → «Встановити» → «Редагувати».
  2. OpenCart 3.x: Розширення → Встановлення розширень → завантажте cc_easypay-oc3.ocmod.zip, потім Розширення → Оплата → EasyPay → «Встановити».
  3. OpenCart 2.3: штатний інсталятор 2.3 вимагає FTP, тому простіше розпакувати вміст папки upload/ з архіву cc_easypay-oc2.ocmod.zip у корінь магазину. Потім Розширення → Оплата → EasyPay → «Встановити».
  4. Для перевірки увімкніть «Тестовий режим» і проведіть замовлення до сторінки оплати EasyPay.
  5. Для реальних оплат вимкніть тестовий режим, впишіть PartnerKey, ServiceKey і SecretKey, натисніть «Перевірити ключі» і збережіть. Адресу для сповіщень модуль передає сам з кожним платежем.

Історія версій

1.0.0 — перший реліз для OpenCart 2.3, 3.x і 4.x. Оплата через EasyPay Merchant API: картка, Apple Pay, Google Pay. Підписані сповіщення з перевіркою статусу через orderState, захист від недоплати й повторних сповіщень, причина відмови банку в історії замовлення, тестовий режим з публічними ключами, перевірка ключів. У Pro — журнал платежів, повне й часткове повернення з адмінки, звірка статусу, нагадування EasyPay про неоплачене замовлення листом і SMS/Viber, таймер оплати.

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

Чи потрібна ліцензія, щоб приймати оплати?

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

Потрібен договір з EasyPay?

Для реальних оплат — так. Для перевірки вистачить тестового режиму з публічним тестовим мерчантом EasyPay, він вмикається одним перемикачем.

Покупець оплатив, а замовлення все ще «очікує оплати».

Перевірте, що сайт доступний з інтернету по HTTPS, а «Перевірити ключі» показує успіх. Навіть без сповіщення замовлення підтягне статус, коли покупець повернеться в магазин. У Pro достатньо натиснути «Звірити» в журналі.

Можна повернути частину суми?

У Pro — так, з журналу платежів: кілька часткових повернень, а залишок — однією кнопкою.

Дані картки проходять через мій сайт?

Ні. Картка вводиться на сторінці EasyPay, на ваш сервер приходить лише підписане сповіщення, а статус модуль бере в EasyPay.

Ліцензію треба продовжувати щороку?

Ні. Для OpenCart ліцензія назавжди: оплачуєте один раз.

Питання щодо модуля?

Пишіть у Telegram — відповімо протягом робочого дня. Допоможемо з налаштуванням, сумісністю та активацією ключа.

@catcode_support

Не той варіант, що шукаєте?

Ми робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль