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

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

Модуль iPay.ua для OpenCart 2.3, 3.x і 4.x: оплата карткою, Apple Pay і Google Pay, статус замовлення зі звіркою через API iPay, захист від недоплати. 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
iPay.ua для OpenCart — оплата карткою, Apple Pay і Google Pay

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

Функція Free Pro
Оплата карткою, Apple Pay і Google Pay на захищеній сторінці iPay.ua
Статус замовлення — лише з відповіді Status API iPay: підроблена нотифікація нічого не змінить
Захист від недоплати: сума з iPay звіряється з сумою замовлення
Замовлення закривається, навіть якщо нотифікація не дійшла, — коли покупець повертається в магазин
Повторна нотифікація не дублює запис в історії замовлення
Пісочниця й перевірка ключів однією кнопкою
Окремі статуси для очікування, оплати, блокування коштів, відмови й повернення
Спосіб оплати ховається для кошика не в гривні
Українська та англійська локалізація адмінки й вітрини
Журнал платежів зі статусом iPay поруч зі статусом замовлення
Повернення коштів з адмінки, повне й часткове
Списання й скасування предавторизації, автосписання при підтвердженні замовлення
Посилання на оплату для замовлення з адмінки
Звірка статусу платежу однією кнопкою

CatCode iPay — модуль оплати через iPay.ua для OpenCart 2.3, 3.x і 4.x. Покупець платить карткою, Apple Pay або Google Pay на захищеній сторінці iPay, а замовлення в магазині саме переходить в «Оплачено». Статус модуль бере не зі слів сповіщення, а з відповіді API iPay на ваші ключі, тому підробити оплату запитом на сайт не вийде.

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

Живе демо

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

Найпростіший спосіб побачити все вживу — поставити безкоштовну версію у свій магазин і ввести тестові доступи iPay: запити підуть у пісочницю sandbox-checkout.ipay.ua, гроші не рухаються. Тестова картка iPay 3333 3333 3333 3331 завжди дає успішну оплату, 3333 3333 3333 3349 — відмову, 3333 3333 3333 3356 — предавторизацію.

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

У чекауті це звичайний спосіб оплати «Оплата карткою, Apple Pay, Google Pay (iPay.ua)». Покупець підтверджує замовлення, модуль створює платіж в iPay і веде його на сторінку оплати з сумою в гривнях і назвою вашого магазину. Сторінка відкривається мовою магазину: українською, російською або англійською.

iPay.ua в чекауті OpenCart
Крок оплати в OpenCart: покупець бачить iPay як звичайний спосіб оплати й одну кнопку «Перейти до оплати».

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

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

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

Налаштування модуля iPay для OpenCart
Налаштування: ID мерчанта й ключ підпису окремо для бойового режиму й пісочниці, кнопка «Перевірити ключі», готовий URL для нотифікацій, назва магазину на сторінці оплати й термін дії посилання.
  • Перевірка ключів однією кнопкою. Модуль робить службовий запит до iPay і каже, чи прийнято ID мерчанта й ключ підпису. Платіж при цьому не створюється.
  • Окремі статуси замовлення для «очікує оплати», «оплачено», «кошти заблоковано», «оплата не пройшла» і «повернення».
  • Історія замовлення з номером платежу iPay і замаскованою карткою. Недоплату видно одразу: «сплачено 3969.85 грн замість 3979.85 грн — потрібна перевірка», і таке замовлення в оплачені не переходить.
  • Журнал платежів (Pro): усі платежі iPay одним списком, зі статусом в iPay поруч зі статусом замовлення. Там же кнопки «Звірити», «Повернути», «Списати» і «Скасувати блокування».
Історія замовлення з оплатою iPay
Історія замовлення: очікування оплати, блокування коштів, підтвердження менеджером і автоматичне списання — кожен крок записаний з номером платежу.
Журнал платежів iPay для OpenCart
Журнал платежів (Pro): сума, скільки повернено, статус iPay і статус замовлення, картка. Зверху — посилання на оплату для будь-якого замовлення.

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

  1. Покупець підтверджує замовлення з оплатою iPay. Модуль створює платіж запитом PaymentCreate: сума в копійках, опис «Оплата замовлення №…», адреси повернення, мова сторінки. Замовлення отримує статус «очікує оплати».
  2. Покупець платить на сторінці iPay карткою, Apple Pay чи Google Pay.
  3. iPay надсилає нотифікацію на ваш сайт. Модуль знаходить за номером платежу своє замовлення і питає в iPay справжній статус запитом Status, зі своїми ключами.
  4. Модуль звіряє оплачену суму із сумою замовлення. Якщо все збігається, замовлення стає «Оплачено», і в історію записується номер платежу й картка.
  5. Покупець повертається в магазин. Модуль ще раз питає статус: якщо нотифікація не дійшла, замовлення закривається тут. Повторна нотифікація дублем у історії не стає.
  6. Якщо iPay підключив вам предавторизацію, кошти спершу лише блокуються. У Pro вони списуються автоматично, щойно менеджер переводить замовлення в оплачений статус. Або вручну з журналу: «Списати» чи «Скасувати блокування».

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

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

Перш ніж купувати, 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 і SimpleXML, вихідні HTTPS-запити з сервера.
  • Договір з iPay.ua: ID мерчанта (mch_id) і ключ підпису (sign_key). Тестові доступи до пісочниці iPay видає разом із договором.
  • Валюта кошика — гривня (UAH).
  • Адресу нотифікацій iPay прописує на своєму боці: модуль показує готовий URL, його треба один раз надіслати підтримці iPay. Адреса має бути відкрита ззовні, без basic-auth.

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

iPay підписує запити й нотифікації так: сіль плюс HMAC-SHA512 від солі ключем мерчанта. Сам вміст повідомлення цей підпис не покриває. Тому модуль нікому не вірить на слово: підпис нотифікації перевіряється, але замовлення змінює лише відповідь запиту Status, який модуль сам робить до iPay з вашими ключами. Підроблена чи перехоплена нотифікація може хіба що змусити модуль ще раз перевірити статус.

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

Ключ підпису зберігається в базі в зашифрованому вигляді. Ядро OpenCart не патчиться: у 4.x і 3.x усе працює через штатні події, у 2.3 — теж без ocmod-правок. Таблиця платежів і налаштування при видаленні модуля лишаються, історію не втратите.

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

  1. OpenCart 4.x: Розширення → Встановлення розширень → завантажте cc_ipay.ocmod.zip і натисніть «Встановити». Далі Розширення → Оплата → «iPay.ua — оплата карткою (CatCode)» → «Встановити» → «Редагувати».
  2. OpenCart 3.x: Розширення → Встановлення розширень → завантажте cc-ipay-oc3.ocmod.zip, потім Розширення → Оплата → iPay → «Встановити».
  3. OpenCart 2.3: штатний інсталятор 2.3 вимагає FTP, тому простіше розпакувати вміст папки upload/ з архіву cc-ipay-oc2.ocmod.zip у корінь магазину. Потім Розширення → Оплата → iPay → «Встановити».
  4. Уведіть ID мерчанта й ключ підпису, натисніть «Перевірити ключі», збережіть і надішліть URL нотифікацій у підтримку iPay.
  5. Для початку увімкніть «Пісочницю» і проведіть тестову оплату карткою 3333 3333 3333 3331.

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

1.0.0 — перший реліз для OpenCart 2.3, 3.x і 4.x. Оплата через iPay.ua Checkout API: картка, Apple Pay, Google Pay. Нотифікації зі звіркою через Status API, захист від недоплати й повторних нотифікацій, пісочниця й перевірка ключів. У Pro — журнал платежів, повернення (reversal/refund, повні й часткові), списання й скасування предавторизації, автосписання при підтвердженні замовлення, посилання на оплату для замовлення з адмінки.

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

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

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

Замовлення висить в «очікує оплати», хоча гроші списані. Що не так?

Найчастіше не долітає нотифікація: адресу не прописано в iPay, або її закриває фаєрвол, Cloudflare чи basic-auth. Покупець, що повернувся в магазин, закриє замовлення сам, а в Pro достатньо натиснути «Звірити» в журналі.

Чи працюють Apple Pay і Google Pay?

Так, на сторінці оплати iPay, якщо їх увімкнено у вашому договорі. У пісочниці iPay їх немає — там лише картки.

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

У Pro — так, з журналу платежів. Часткові повернення iPay вмикає мерчанту за заявкою; якщо їх не підключено, модуль покаже відповідь iPay і не змінить замовлення.

Що таке предавторизація?

Кошти спершу лише блокуються на картці, а списуються після підтвердження замовлення. Режим вмикає iPay на своєму боці; модуль ставить окремий статус, а в Pro списує кошти автоматично або кнопкою.

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

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

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

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

@catcode_support

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

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

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