Связаться
  • OpenCart
  • Payments
  • v1.0.0

Portmone для OpenCart — оплата картой, Apple Pay и Google Pay

Принимайте оплату картой, Apple Pay и Google Pay в OpenCart 2.3, 3.x и 4.x через Portmone.com: заказ подтверждается только после запроса статуса в Portmone, уведомления JSON и XML, защита от недоплаты. Pro — журнал платежей, возврат средств и двухстадийная оплата.

Скачать Free
Pro · лицензия навсегда Чем больше сайтов, тем дешевле каждый
Совместимость
OpenCart 2.3.0.x, 3.0.x и 4.0.2 – 4.1.x
PHP
7.0 и новее
Версия
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Лицензия
два сайта, навсегда
Триал
7 дней, без карты, один на сайт
Или все 144 Pro-модулей в All Access — 4 990 ₴ / год

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

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

Функция Free Pro
Оплата картой, Apple Pay и Google Pay на странице Portmone.com ✔ ✔
Валюты UAH, USD, EUR, GBP, PLN и KZT — в остальных способ оплаты прячется сам ✔ ✔
Статус заказа только из ответа Portmone: поддельный запрос на сайт ничего не изменит ✔ ✔
Уведомления об оплате JSON и XML с повторной проверкой статуса через API ✔ ✔
Сверка суммы: недоплата не становится оплатой, заказ уходит на проверку ✔ ✔
Повторная попытка закрывает предыдущий счёт — один заказ не оплатят дважды ✔ ✔
Подпись запросов HMAC-SHA256, если Portmone выдал ключ подписи ✔ ✔
Пароль и ключ подписи хранятся в базе зашифрованными ✔ ✔
Проверка соединения с Portmone одной кнопкой в админке ✔ ✔
Шесть статусов заказа, время на оплату и гео-зона ✔ ✔
Номер счёта, маска карты и код авторизации в истории заказа ✔ ✔
Сборки для OpenCart 2.3, 3.x и 4.x, ядро магазина не патчится ✔ ✔
Списание и разблокировка уже заблокированных средств — работает и без Pro ✔ ✔
Журнал платежей со сверкой статуса — ✔
Полный и частичный возврат средств из админки — ✔
Двухстадийная оплата: блокировка средств и списание при отгрузке — ✔

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

Способ оплаты Portmone в чекауте OpenCart
Шаг оплаты в OpenCart 4.1: Portmone как обычный способ оплаты, сумма заказа и кнопка «Перейти к оплате». Данные карты вводятся на стороне Portmone и не проходят через ваш сайт.
Настройки модуля Portmone для OpenCart
Настройки: Payee ID, логин и пароль магазина, ключ подписи, время на оплату, готовый URL для уведомлений, Pro-лицензия и журнал запросов для отладки. Пароль и ключ хранятся в базе зашифрованными и не показываются в форме.
Проверка соединения с Portmone в админке OpenCart
«Проверить соединение» отвечает конкретно: принимает ли Portmone ваш логин и пароль, подходит ли ключ подписи. Тестовый счёт на 1 грн создаётся и сразу закрывается.

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

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

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

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

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

  • 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 (без basic-auth), чтобы до него доходили уведомления Portmone.
  • Валюта корзины — UAH, USD, EUR, GBP, PLN или KZT.
  • Договор с Portmone.com: Payee ID, логин и пароль магазина. Ключ подписи нужен только тогда, когда Portmone включил подпись для вашего магазина.

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

v1.0.0 Текущая

Для OpenCart 2.3, 3.x и 4.x.

Вместе с Portmone для OpenCart покупают

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

Набор «Старт магазина» Portmone Nova Poshta Premium LiqPay Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 144 модулей в All Access за 4 990 ₴.
3 490 ₴ навсегда вместо 5 860 ₴ поштучно
Купить набор →

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

CatCode Portmone — модуль оплаты через Portmone.com для OpenCart 2.3, 3.x и 4.x. Покупатель платит картой, Apple Pay или Google Pay на странице Portmone, а заказ в магазине сам переходит в оплаченный статус. Главное отличие от обычного «редирект и поверили на слово»: модуль не верит ни возврату покупателя, ни уведомлению — прежде чем отметить заказ оплаченным, он сам спрашивает у Portmone статус и сверяет сумму.

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

В чекауте это обычный способ оплаты «Оплата картой, Apple Pay, Google Pay (Portmone)». Покупатель подтверждает заказ и жмёт «Перейти к оплате» — модуль создаёт счёт в Portmone и открывает страницу оплаты.

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

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

Способ оплаты показывается только для валют, которые принимает Portmone: UAH, USD, EUR, GBP, PLN и KZT. Переключил покупатель магазин на другую валюту — Portmone прячется сам.

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

  • «Проверить соединение» — модуль делает запрос статуса вашими данными, а если указан ключ подписи, ещё и создаёт тестовый счёт на 1 грн и сразу его закрывает. Ошибку в пароле или ключе вы увидите в админке, а не от покупателя.
  • Шесть статусов заказа на отдельной вкладке: «ожидает оплаты», «оплачено», «средства заблокированы», «блокировка снята», «неудачная оплата» и «возврат».
  • История заказа с номером счёта Portmone, маской карты, кодом авторизации и результатом каждой сверки. Недоплату видно сразу, и такой заказ в оплаченные не переходит.
  • Время на оплату — сколько минут ссылка остаётся действительной, и гео-зона, если Portmone нужен не для всех стран.
  • Журнал платежей (Pro) — все платежи одним списком: сумма заказа, оплачено, возвращено, состояние в Portmone рядом со статусом заказа, номер счёта и карта, кнопки «Сверить» и «Вернуть».

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

  1. Покупатель в чекауте выбирает Portmone и подтверждает заказ. Модуль создаёт счёт в Portmone с уникальным номером попытки, суммой и валютой заказа. Если Portmone выдал вам ключ подписи, запрос подписывается HMAC-SHA256. Заказ получает статус «ожидает оплаты».
  2. Покупатель платит на странице Portmone — картой, Apple Pay, Google Pay или другими способами, включёнными для вашего магазина.
  3. Покупатель возвращается в магазин (Portmone делает это POST-запросом с другого домена). Модуль запрашивает статус у Portmone через result и только по этому ответу решает, что случилось с деньгами.
  4. Сверка суммы и принадлежности: номер должен быть выдан именно этому заказу, Payee ID — вашим, сумма — не меньше суммы заказа. Если оплачено меньше, заказ остаётся на проверке с заметкой для менеджера.
  5. Заказ переходит в выбранный статус, а в историю попадают номер счёта, маска карты и код авторизации.
  6. Если покупатель закрыл вкладку и не вернулся, сработает уведомление Portmone на адрес из настроек — JSON или XML. Уведомлению модуль тоже не верит на слово: статус перезапрашивается через API, а повторное уведомление не дублирует запись в истории.
  7. Повторная попытка закрывает предыдущий счёт, так что два платежа за один заказ не пройдут.
  8. В режиме двухстадийной оплаты (Pro) средства только блокируются на карте. Списываете их из журнала, когда заказ готов к отгрузке, или снимаете блокировку. Платёжные системы держат блокировку до 7 дней.

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

  • Статус — только из API Portmone. Возврат покупателя, уведомление и кнопка «Сверить» ведут в одну точку: запрос result с логином и паролем магазина. Подделать оплату запросом на сайт не выйдет.
  • Уникальные номера попыток: номер заказа плюс счётчик и случайный суффикс. Отклонённая старая попытка не тронет уже оплаченный заказ, а оплаченная старая попытка засчитается, даже если покупатель открыл новую.
  • Сессия покупателя не теряется: Portmone возвращает покупателя POST-запросом с другого домена, и OpenCart на таком запросе открывал новую сессию — корзина и авторизация исчезали. Модуль на таком возврате не даёт перезаписать сессионную куку.
  • OpenCart 4.1: если ядро аннулировало ещё не оформленный заказ, пока покупатель перезагружал чекаут, модуль пересобирает его из текущей корзины, а не отказывает в оплате.
  • Тексты модуля не перетираются языковыми файлами других расширений, которые грузятся событиями на смену статуса заказа.
  • Пароль и ключ подписи шифруются в базе (AES-256-CBC с проверкой целостности), в журнале запросов пароль маскируется.
  • Свой код расширения cc_portmone: официальный модуль Portmone может стоять рядом — настройки и таблицы разные.
  • Ядро OpenCart не патчится: в 4.x модуль ставится как обычное расширение, в 3.x и 2.3 — без ocmod-правок ядра. Таблица платежей при удалении модуля остаётся, чтобы возвраты и блокировки не потерялись.
  • Pro-гейт без «кирпича»: когда триал закончился, останавливаются только Pro-функции, а списать или разблокировать уже заблокированные средства можно и дальше.

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

  1. OpenCart 4.x: Расширения → Установка расширений → загрузите cc_portmone.ocmod.zip и нажмите «Установить». Далее Расширения → Оплата → «Portmone — оплата картой, Apple Pay, Google Pay» → «Установить» → «Редактировать».
  2. OpenCart 3.x: Расширения → Установка расширений → загрузите cc_portmone-oc3.ocmod.zip, обновите модификации, затем Расширения → Оплата → Portmone → «Установить».
  3. OpenCart 2.3: штатный установщик 2.3 копирует файлы только по FTP, поэтому проще распаковать содержимое папки upload/ из архива cc_portmone-oc2.ocmod.zip в корень магазина. Затем Расширения → Оплата → Portmone → «Установить».
  4. Впишите Payee ID, логин и пароль магазина (и ключ подписи, если Portmone его выдал), нажмите «Проверить соединение» и сохраните.
  5. Отправьте менеджеру Portmone адрес для уведомлений — он показан в настройках модуля.
  6. Для Pro: вставьте лицензионный ключ из письма после оплаты или запустите 7-дневный триал.

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

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

@catcode_support Настройка, совместимость, активация
Нужна ли лицензия, чтобы принимать оплаты?

Нет. Оплата, уведомления, сверка статуса и суммы работают в бесплатной версии без ограничения по времени.

Нужен договор с Portmone?

Да. Payee ID, логин и пароль магазина выдаёт Portmone при подключении. Тестовый режим для магазина включает менеджер Portmone — отдельных тестовых ключей модулю не нужно.

Покупатель оплатил, а заказ всё ещё «ожидает оплаты».

Статус проверяется при возврате покупателя и на каждое уведомление. Проверьте, что «Проверить соединение» проходит и что Portmone отправляет уведомления на адрес из настроек. С Pro статус можно сверить из журнала одним кликом.

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

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

У меня уже стоит официальный модуль Portmone. Будет конфликт?

Нет, у модулей разные коды расширения и разные настройки. Показывать в чекауте стоит только один из них.

Можно вернуть часть суммы?

В Pro — да, из журнала платежей: несколько частичных возвратов, а остаток одной кнопкой. Portmone советует делать возврат не раньше чем через 24 часа после оплаты.

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

Нет. Для OpenCart лицензия навсегда: оплачиваете один раз.

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

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

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