Связаться
  • OpenCart
  • Оплата
  • v1.0.1

Payment Status Sync для OpenCart — сверка «ожидает оплату» с банком: LiqPay, monobank, WayForPay, Portmone

Модуль для OpenCart 4, 3 и 2.3 находит заказы, которые до сих пор «ожидают оплату», хотя банк деньги уже принял: уведомление банка не дошло до магазина. Он сам запрашивает статус платежа в LiqPay, monobank (Mono Acquiring), WayForPay и Portmone через их официальные API и показывает каждое расхождение с кнопкой «Применить оплату». Работает с нашими платёжными модулями и берёт ключи из них. Pro ставит статус «оплачено» сам и присылает уведомления на e-mail и в Telegram.

Скачать Free
Pro · лицензия навсегда Чем больше сайтов, тем дешевле каждый
Совместимость
OpenCart 4.0.2 – 4.1.x (проверено на 4.1.0.3 и 4.0.2.3, в том числе с DB_DRIVER=pdo) · OpenCart 3.0.x (проверено на 3.0.5.0) · OpenCart 2.3.0.2 (PHP 7.0) · платёжные модули CatCode LiqPay, Mono Acquiring, WayForPay, Portmone · PHP cURL · MariaDB 10.11
Версия
v1.0.1 (OpenCart 4)
v1.0.1 (OpenCart 3.x)
v1.0.1 (OpenCart 2.3)
Лицензия
один сайт, навсегда
Триал
7 дней, без карты, один на сайт
Обновлено
10 октября 2026
Или все 173 Pro-модулей в All Access — 4 990 ₴ / год

Что есть во Free,
а что даёт Pro

Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Функция Free Pro
Сверка заказов «ожидает оплату» со статусом платежа в LiqPay, monobank (Mono Acquiring), WayForPay и Portmone через их официальные API ✔ ✔
Ключи — из настроек наших платёжных модулей, вводить повторно не нужно ✔ ✔
Монитор: «Требует внимания», «Ожидают», «Закрытые», плитки и карточки четырёх платёжных модулей ✔ ✔
Кнопка «Применить оплату»: банк запрашивается ещё раз, статус ставится через штатную историю заказа ✔ ✔
Недоплата, другая валюта, холд и возврат только показываются, статус заказа не меняется ✔ ✔
Находит и потерянные заказы без статуса, которых не видно в списке заказов ✔ ✔
Фоновая проверка: планировщик OpenCart 4 и адрес с секретным ключом для cron хостинга ✔ ✔
Строка на странице заказа с ответом банка и кнопкой «Спросить банк сейчас» ✔ ✔
Пункт меню Продажи → «Сверка оплат» со счётчиком ✔ ✔
Страница «Способы оплаты»: доля оплаченных заказов для каждого способа оплаты магазина и отметка падения ✔ ✔
Журнал событий ✔ ✔
Админка на русском, украинском и английском, сборки для OpenCart 4.x, 3.x и 2.3 ✔ ✔
Автоматическое применение подтверждённых оплат без клика, в том числе для потерянных заказов — ✔
Уведомления на e-mail и в Telegram: исправленные заказы, недоплаты, холды, ошибки API — ✔
Уведомление, когда способ оплаты вдруг перестаёт давать оплаченные заказы — ✔
Статус «неудачная оплата» для оплат, которые банк отклонил, после окончания проверок (включается отдельно) — ✔
Экспорт журнала в CSV — ✔

Как это выглядит

Монитор модуля Payment Status Sync в OpenCart 4.1: плитки, карточки платёжных модулей и заказы, которые банк уже оплатил
Монитор (OpenCart 4.1, бесплатная версия, демо-заказы и тестовый банк): четыре заказа требуют внимания. LiqPay #201 и WayForPay #203 банк подтвердил, а заказ до сих пор «Pending» — рядом кнопка «Apply payment». Portmone #204 — недоплата (600 из 900 грн), monobank #202 — деньги заблокированы (холд): их модуль только показывает.
Строка модуля на странице заказа OpenCart: что ответил банк и кнопки «Спросить банк сейчас» и «Применить оплату»
Страница заказа #203: WayForPay подтверждает оплату («Approved», 300 грн), а заказ до сих пор ждёт. Кнопка «Ask the bank now» спрашивает банк прямо сейчас, «Apply payment» ставит статус «оплачено».
Страница «Способы оплаты»: доля оплаченных заказов за последние 24 часа против 14 дней до того
«Способы оплаты»: для каждого способа оплаты магазина — доля заказов, дошедших до оплаченного статуса, за последние 24 часа против 14 дней до того. Способ отмечается «Падение», когда доля падает на 25 пунктов и больше.

Главное о модуле

Как это выглядит для покупателя

На витрине и в оформлении заказа ничего не меняется: модуль не добавляет скриптов и не делает запросов со страниц магазина.

Что получает админ

Пункт меню Продажи → «Сверка оплат» со счётчиком заказов, требующих внимания, и страницы «Монитор», «Способы оплаты», «Журнал», «Настройки».

Триал стартует, когда вы попросите

Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт

Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Для студий — ключи на 5, 25 сайтов или без ограничений.

Технические требования

  • OpenCart 4.0.2 – 4.1.x (проверено на 4.1.0.3 и 4.0.2.3, с драйвером базы mysqli и pdo), 3.0.x (проверено на 3.0.5.0) или 2.3.0.2.
  • Платёжный модуль CatCode LiqPay, Mono Acquiring, WayForPay или Portmone для вашей версии OpenCart с сохранёнными ключами.
  • PHP — тот, что нужен вашей версии OpenCart: сборку для 2.3 проверено на PHP 7.0, остальные — на PHP 8.x. Расширение cURL — для запросов к банкам и лицензии.
  • База: проверено на MariaDB 10.11.
  • Для проверки чаще раза в час (и в OpenCart 3 и 2.3) — cron хостинга, который открывает адрес проверки каждые 5–10 минут. Готовая строка для crontab — во вкладке «Расписание».

История версий

v1.0.1 Текущая 10 октября 2026

OpenCart 4.0.2 с драйвером базы данных PDO: прогон сверки останавливался с ошибкой SQL 1064 — исправлено.

v1.0.0 Первый релиз 10 октября 2026

Для OpenCart 4.x, 3.x и 2.3: сверка заказов «ожидает оплату» с API LiqPay, monobank (Mono Acquiring), WayForPay и Portmone, монитор, кнопка «Применить оплату», строка на странице заказа,…

Вместе с Payment Status Sync для OpenCart покупают

4 модуля одним заказом — на 40% дешевле, чем по отдельности

Набор «Старт магазина» Payment Status Sync Nova Poshta Premium LiqPay Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 173 модулей в All Access за 4 990 ₴.
3 790 ₴ навсегда вместо 6 260 ₴ поштучно
Купить набор →

Полное описание модуля

Payment Status Sync для OpenCart — модуль для магазинов, которые принимают оплату картой. Бывает так: покупатель оплатил, банк деньги принял, а заказ в админке до сих пор «ожидает оплату». Статус «оплачено» ставит уведомление, которое банк отправляет на сайт, и если оно не дошло — сайт был недоступен, изменился адрес уведомлений, запрос отрезал файрвол, — заказ так и висит. Его не отправляют, покупатель пишет в поддержку, а менеджер идёт в кабинет банка сверять платежи вручную.

Модуль сам спрашивает банк о каждом заказе, который ждёт оплату, — через официальные API статуса платежа LiqPay, monobank (Mono Acquiring), WayForPay и Portmone — и показывает заказы, которые на самом деле оплачены, с кнопкой «Применить оплату». Проверка — только по статусу, который возвращает банк: модуль ничего не угадывает по корзине, письмам или времени. Недоплаты, оплаты в другой валюте, холды и возвраты он показывает, но статус заказа не меняет.

Работает с нашими платёжными модулями для OpenCart: LiqPay, Mono Acquiring (monobank), WayForPay и Portmone. Ключи берёт из их настроек — вводить их повторно не нужно.

Магазин на WooCommerce? Для него есть отдельный плагин — Payment Status Sync для WooCommerce: LiqPay, monobank, WayForPay и Portmone (наши модули оплаты), а также Stripe и PayPal.

Как это выглядит для покупателя

На витрине и в оформлении заказа ничего не меняется: модуль не добавляет скриптов и не делает запросов со страниц магазина. Покупатель замечает только следствие: оплаченный заказ не застревает в «ожидает оплату», его отправляют, а не просят «прислать квитанцию». Если в настройках включено «Уведомлять покупателя», он получит обычное письмо OpenCart о смене статуса.

Что получает админ

Пункт меню Продажи → «Сверка оплат» со счётчиком заказов, требующих внимания, и страницы «Монитор», «Способы оплаты», «Журнал», «Настройки».

  • Плитки: сколько заказов требуют внимания, сколько ждут оплату, сколько исправлено за 7 дней и когда была последняя проверка.
  • Карточки платёжных модулей: для LiqPay, monobank, WayForPay и Portmone — установлен ли модуль, сохранены ли ключи, тестовый режим, двухэтапная оплата.
  • «Требует внимания»: оплачено в банке, но заказ ждёт; недоплата; деньги заблокированы (холд); ошибка API. «Ожидают» — ещё не оплачены, «Закрытые» — исправленные и те, что получили новый статус иначе.
  • Кнопки: «Проверить все сейчас», «Проверить» для одного заказа, «Применить оплату» (банк запрашивается ещё раз) и «Убрать» из списка — в самом заказе при этом ничего не меняется.

Строка на странице заказа

В заказах, оплаченных одним из четырёх модулей, вверху — что в последний раз сказал банк и когда, и кнопки «Спросить банк сейчас» и «Применить оплату». Строка выключается в настройках.

Способы оплаты

  • Доля оплаченных заказов для каждого способа оплаты магазина — не только четырёх банков, но и, например, наложенного платежа — за последние 24 часа против 14 дней до того.
  • «Падение» — когда доля упала на 25 пунктов и больше и в окне не меньше 5 заказов. Резкое падение обычно означает, что банк перестал подтверждать оплаты (просроченные ключи, изменённый адрес уведомлений, сломанный чекаут), а не что покупатели передумали. Все пороги меняются в настройках.

Pro: автоматизация и уведомления

  • Автоматическое применение: когда банк подтверждает полную оплату в валюте заказа, заказ получает статус «оплачено» без клика — в том числе потерянный заказ без статуса, которого не видно в списке заказов.
  • Уведомления на до 5 e-mail через почтовые настройки магазина и в Telegram (токен бота и ID чата): одно сообщение за прогон — что исправлено, что требует человека (недоплаты, холды), ошибки API (не чаще раза в 6 часов на банк) и падение способа оплаты (раз в 12 часов).
  • Статус «неудачная оплата» — по желанию: когда проверки закончились, а последнее слово банка «отклонено» или «просрочено», заказ переходит из статуса ожидания платёжного модуля в его статус неудачной оплаты. По умолчанию выключено.
  • CSV журнала — UTF-8 с BOM, открывается в Excel.

Как это работает — шаг за шагом

  1. Модуль берёт заказы, оплаченные одним из четырёх платёжных модулей, у которых журнал оплаты ещё «не оплачено»: без статуса (потерянные), в статусе ожидания платёжного модуля, в статусе нового заказа или в статусах, которые вы выбрали сами. Оплаченные и выполненные заказы не проверяются никогда.
  2. Первый запрос — через 15 минут после последнего изменения статуса, дальше всё реже, до раза в 12 часов; через 72 часа модуль перестаёт спрашивать.
  3. Запрос статуса идёт строго по документации банка: LiqPay — action=status, monobank — статус счёта с токеном мерчанта, WayForPay — CHECK_STATUS с проверкой подписи ответа, Portmone — method=result. Ключи и секреты берутся из настроек платёжного модуля и расшифровываются так же, как это делает он сам.
  4. Если банк подтверждает полную оплату в валюте заказа, модуль под блокировкой ещё раз перечитывает заказ и журнал оплаты, записывает оплату в журнал платёжного модуля и ставит статус «оплачено» через штатную историю заказа OpenCart — так же, как это делает уведомление банка: остатки, купоны и письма работают как обычно.
  5. Недоплата, другая валюта, холд, возврат — только запись в мониторе и журнале (и уведомление в Pro). Банк не ответил или ограничил частоту запросов — заказ перепрашивается позже, ничего не меняя.

Что под капотом

  • Без правок ядра. Без OCMOD-патчей; пункт меню и строка на странице заказа добавляются событиями OpenCart. Одна библиотека классов одинакова в трёх сборках, код совместим с PHP 7.0.
  • Собственные таблицы oc_cc_paysync_check (состояние проверки каждого заказа) и oc_cc_paysync_log (журнал событий). Таблицы ядра не меняются; в журнале платёжного модуля обновляется только строка оплаченного заказа — условным запросом, так что параллельное уведомление банка не перезаписывается.
  • Банки по кругу. Прогон делит лимит запросов между банками и заканчивается за 35 с, даже когда банк отвечает медленно. HTTP 429 от банка ставит этот банк на паузу до конца прогона, не засчитывая попытку.
  • Адрес проверки index.php?route=extension/cc_paysync/cron.cron&key=… (в 3.x и 2.3 — extension/module/cc_paysync_cron/cron): без ключа — «403». Кнопки админки вызывают тот же адрес.
  • Лицензия живёт в отдельной группе настроек: «Сохранить» её не трогает.
  • Деинсталляция снимает события и (OpenCart 4) задание планировщика, журнал и состояние проверок оставляет — повторная установка их видит. Для полного удаления удалите таблицы oc_cc_paysync_* вручную.

Как установить

  1. OpenCart 4: Расширения → Установщик → загрузите cc_paysync.ocmod.zip (имя архива не меняйте) и нажмите «Установить». OpenCart 3: Расширения → Установщик → cc_paysync-oc3.ocmod.zip. OpenCart 2.3: залейте содержимое папки upload/ из cc_paysync-oc2.ocmod.zip в корень магазина (FTP или файловый менеджер хостинга) — Установщик 2.3 без настроенного FTP файлы не копирует.
  2. Расширения → Расширения → Модули → CatCode Payment Status Sync → «Установить».
  3. Продажи → «Сверка оплат». На карточках платёжных модулей должно быть «проверяется»; нажмите «Проверить все сейчас».
  4. Во вкладке «Расписание» скопируйте строку для cron хостинга (каждые 5–10 минут). В OpenCart 4 проверка и без неё запускается каждый час.
  5. Для Pro: вставьте лицензионный ключ из письма после оплаты или нажмите «Попробовать Pro 7 дней» во вкладке «Лицензия».

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Почему заказ «ожидает оплату», хотя деньги с карты списаны?

Статус «оплачено» ставит уведомление, которое банк отправляет на сайт после оплаты. Если сайт в этот момент был недоступен, адрес уведомлений изменили, запрос заблокировал файрвол или упал хостинг, банк деньги принял, а заказ так и висит. Модуль сам спрашивает банк о таких заказах и показывает, какие из них на самом деле оплачены.

С какими платёжными модулями он работает?

С платёжными модулями CatCode для OpenCart: LiqPay, Mono Acquiring (monobank), WayForPay и Portmone, сборки для 4.x, 3.x и 2.3. Ключи и журнал оплат модуль читает именно из них, поэтому модули других разработчиков не поддерживаются. Страница «Способы оплаты» считает долю оплаченных заказов для любого способа оплаты магазина.

Может ли модуль поставить «оплачено» по ошибке?

Статус ставится только тогда, когда банк возвращает успешный статус полной оплаты в валюте заказа. Перед применением банк запрашивается ещё раз, а заказ и журнал оплаты перечитываются под блокировкой. Недоплата, другая валюта, холд и возврат никогда не применяются — только показываются.

А если уведомление банка всё же придёт позже?

Модуль записывает оплату в журнал самого платёжного модуля, так что позднее уведомление тот считает уже обработанным: без второй строки в истории заказа и без второго письма. На тестах это проверено для всех четырёх платёжных модулей и для обратного порядка (сначала уведомление, потом модуль).

Как часто модуль спрашивает банк?

Первый запрос — через 15 минут после последнего изменения статуса, чтобы собственное уведомление банка успело дойти. Дальше всё реже: 10, 20, 40 минут … до раза в 12 часов, а через 72 часа запросы прекращаются. Оба срока меняются в настройках. В OpenCart 4 проверку каждый час запускает планировщик магазина; для более быстрой реакции — адрес для cron хостинга каждые 5–10 минут.

Лицензию нужно продлевать каждый год?

Нет. Для OpenCart это одна оплата, лицензия навсегда, одна на все три сборки: 4.x, 3.x и 2.3. Триал Pro стартует только по вашей кнопке. После триала сверка и кнопка «Применить оплату» работают дальше, выключаются только автоматизация, уведомления и слежение за способами оплаты.

Модуль меняет файлы OpenCart или витрину?

Нет. Без правок ядра и OCMOD-патчей; пункт меню и строка на странице заказа добавляются событиями OpenCart. Витрины и оформления заказа модуль не касается, таблицы ядра не меняет. Ключи банков используются только для запроса статуса платежа.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

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