Связаться
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. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль