iPay.ua для OpenCart — оплата картой, Apple Pay и Google Pay
Модуль iPay.ua для OpenCart 2.3, 3.x и 4.x: оплата картой, Apple Pay и Google Pay, статус заказа со сверкой через API iPay, защита от недоплаты. Pro — журнал платежей, возвраты, предавторизация, ссылка на оплату.
Что включено в лицензии
| Функция | 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 возвращает покупателя в магазин. Если оплата прошла, он попадает на страницу «Заказ оформлен». Если нет, товары остаются в корзине, а сверху — подсказка попробовать ещё раз или выбрать другой способ. Корзина не исчезает и не дублируется.
Модуль показывается только для корзины в гривнах. Если покупатель переключил валюту магазина на доллары или евро, способ оплаты скрывается: iPay списал бы ту же цифру в гривнах.
Что получает админ

- Проверка ключей одной кнопкой. Модуль делает служебный запрос к iPay и сообщает, приняты ли ID мерчанта и ключ подписи. Платёж при этом не создаётся.
- Отдельные статусы заказа для «ожидает оплаты», «оплачено», «средства заблокированы», «оплата не прошла» и «возврат».
- История заказа с номером платежа iPay и замаскированной картой. Недоплату видно сразу: «оплачено 3969.85 грн вместо 3979.85 грн — нужна проверка», и такой заказ в оплаченные не переходит.
- Журнал платежей (Pro): все платежи iPay одним списком, со статусом в iPay рядом со статусом заказа. Там же кнопки «Сверить», «Вернуть», «Списать» и «Отменить блокировку».


Как это работает шаг за шагом
- Покупатель подтверждает заказ с оплатой iPay. Модуль создаёт платёж запросом PaymentCreate: сумма в копейках, описание «Оплата заказа №…», адреса возврата, язык страницы. Заказ получает статус «ожидает оплаты».
- Покупатель платит на странице iPay картой, Apple Pay или Google Pay.
- iPay отправляет нотификацию на ваш сайт. Модуль находит по номеру платежа свой заказ и запрашивает у iPay настоящий статус запросом Status, со своими ключами.
- Модуль сверяет оплаченную сумму с суммой заказа. Если всё совпадает, заказ становится «Оплачено», а в историю записываются номер платежа и карта.
- Покупатель возвращается в магазин. Модуль ещё раз запрашивает статус: если нотификация не дошла, заказ закрывается здесь. Повторная нотификация дублем в истории не становится.
- Если 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-правок. Таблица платежей и настройки при удалении модуля остаются, историю не потеряете.
Как установить
- OpenCart 4.x: Расширения → Установка расширений → загрузите
cc_ipay.ocmod.zipи нажмите «Установить». Далее Расширения → Оплата → «iPay.ua — оплата карткою (CatCode)» → «Установить» → «Редактировать». - OpenCart 3.x: Расширения → Установка расширений → загрузите
cc-ipay-oc3.ocmod.zip, затем Расширения → Оплата → iPay → «Установить». - OpenCart 2.3: штатный установщик 2.3 требует FTP, поэтому проще распаковать содержимое папки
upload/из архиваcc-ipay-oc2.ocmod.zipв корень магазина. Затем Расширения → Оплата → iPay → «Установить». - Введите ID мерчанта и ключ подписи, нажмите «Проверить ключи», сохраните и отправьте URL нотификаций в поддержку iPay.
- Для начала включите «Песочницу» и проведите тестовую оплату картой
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 — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.
Пока ни одного отзыва. Будь первым — ниже.
Оставить отзыв
Отзыв модерируется перед публикацией — обычно это занимает до 24 часов.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Задать вопрос
Обычно отвечаем в течение 24 часов в рабочее время.
Покупка модуля
—