VibeFox OpenPay for OpenCart — Помощь
Требования
OpenCart: 3.0.x (проверено на 3.0.5.0) или 4.0.2 и новее (проверено на 4.1.0.3).
PHP: 8.0 или новее.
HTTPS: ваш магазин должен работать по HTTPS, потому что форма карты находится на странице оформления заказа.
OpenPay account: аккаунт OpenPay из Мексики, Колумбии или Перу. Вам нужны его Merchant ID, закрытый ключ (sk_...) и открытый ключ (pk_...). В песочнице и в боевом кабинете разные Merchant ID и ключи, и расширение хранит их раздельно.
Currency: покупатель должен платить в валюте, которую принимает страна вашего аккаунта: Мексика — MXN или USD, Колумбия — COP или USD, Перу — PEN или USD. Для других валют способ оплаты на странице оформления заказа не показывается.
VibeFox license key: приобретается на vibefox.net. Один ключ работает на одном домене.
Карта вводится на странице оформления заказа, но считывает её и токенизирует в браузере openpay.js. Поля карты не имеют имени и никогда не отправляются на ваш сервер. Поскольку форма карты находится на вашей странице, область действия PCI DSS для вас — SAQ A-EP; уточните это у своего эквайера.
Установка
Загрузка — это один zip-архив с пакетами для обеих версий OpenCart. Распакуйте его на своём компьютере. Он содержит README.txt, пакет OpenCart 3 wcp_openpay_gateway-oc3-(version).ocmod.zip и пакет OpenCart 4 wcp_openpay_gateway.ocmod.zip. Устанавливайте только пакет для вашей версии OpenCart. Лицензионный ключ одинаков для обеих версий.
OpenCart 3
1. В админ-панели перейдите в Extensions > Installer, нажмите Upload и выберите файл wcp_openpay_gateway-oc3-(version).ocmod.zip. У расширения нет модификаций OCMOD, поэтому обновлять Extensions > Modifications не нужно. Вместо установщика можно скопировать содержимое папки upload из этого пакета в корневую папку вашего магазина.
2. Перейдите в Extensions > Extensions и выберите тип Payments. Найдите VibeFox OpenPay Gateway и нажмите Install (зелёная кнопка +). Вашему пользователю-администратору нужно право на изменение списка платёжных расширений.
3. Нажмите Edit (кнопка с карандашом), чтобы открыть страницу настроек. Вставьте свой лицензионный ключ VibeFox в поле License key в блоке лицензии в верхней части страницы и нажмите Activate (см. Лицензионный ключ).
4. Выберите Account country и введите ключи песочницы и боевые ключи (см. Настройка).
5. Рекомендуется: добавьте URL вебхука в кабинете OpenPay (см. Настройка).
6. Включите Enable / Disable и нажмите Save. Проверьте оплату тестовыми картами песочницы OpenPay, затем выключите Sandbox mode, чтобы принимать настоящие платежи. Сохраняйте ключи песочницы, пока может понадобиться возврат по заказам из песочницы.
OpenCart 4
1. В админ-панели перейдите в Extensions > Installer, нажмите Upload и выберите файл wcp_openpay_gateway.ocmod.zip. Не переименовывайте файл: OpenCart 4 берёт код расширения из имени файла, и переименованный пакет не работает.
2. Пакет появится в списке установленных расширений на той же странице. Нажмите рядом с ним Install (зелёная кнопка +).
3. Перейдите в Extensions > Extensions и выберите тип Payments. Найдите VibeFox OpenPay Gateway, нажмите Install (зелёная кнопка +), затем Edit (кнопка с карандашом).
4. Введите лицензионный ключ, ключи OpenPay и вебхук, как в шагах с 3 по 6 для OpenCart 3. Страница настроек и её поля одинаковы в обеих версиях. Отличается только URL вебхука (см. Webhook).
Новая установка начинает работу с выключенным способом оплаты и включённым режимом песочницы.
Настройка
Все настройки находятся на странице расширения: Extensions > Extensions > Payments > VibeFox OpenPay Gateway > Edit. Разделы перечислены слева; кнопка Save под списком сохраняет всю страницу. Над настройками страница предупреждает, если ключи текущего режима заполнены не полностью (способ оплаты в этом случае скрывается на странице оформления заказа), и если основная валюта вашего магазина не принимается выбранной страной аккаунта, а при включённом режиме песочницы показывает Sandbox mode is enabled — no real charges are made. Без права на изменение расширения страница показывает настройки, но не может их сохранить.
При сохранении ключи проверяются. Merchant ID может содержать только буквы и цифры, закрытый ключ должен начинаться с sk_, а открытый — с pk_. Некорректное значение не сохраняется: остаётся прежнее значение и выводится ошибка, например Sandbox: The private key must start with sk_. То же относится к Sort Order, если он не является целым числом (Sort Order must be a whole number — the previous value was kept.), и к Total, если это не число, равное 0 или больше. Остальные поля сохраняются. Если способ оплаты включён, а ключи текущего режима заполнены не полностью, вы также увидите сообщение о том, что шлюз остаётся скрытым на странице оформления заказа. Пустой Title или название длиннее 128 символов отклоняется с сообщением Enter a title for the payment method (1 to 128 characters)., и тогда ничего не сохраняется.
OpenPay
Enable / Disable: Enable OpenPay card payments включает или выключает способ оплаты. По умолчанию: выключено.
Title: название способа оплаты, которое видят покупатели на странице оформления заказа. Оно же сохраняется в заказе как название способа оплаты. По умолчанию: Credit or debit card (OpenPay). Обязательное поле, до 128 символов.
Description: текст, который выводится над формой карты на шаге Confirm Order. По умолчанию: Pay securely with your credit or debit card. Ваш банк может попросить подтвердить платёж (3D Secure).
Sort Order: место OpenPay среди способов оплаты на странице оформления заказа. Оставьте поле пустым или введите целое число (допускаются отрицательные числа).
Geo Zone: предлагать OpenPay только для платёжных адресов в выбранной географической зоне. По умолчанию: All zones. Географические зоны настраиваются в System > Localisation > Geo Zones. В OpenCart 4, если магазин не запрашивает платёжный адрес, используется адрес доставки.
Total: сумма заказа в основной валюте магазина, которую заказ должен достичь, чтобы предлагался OpenPay. Оставьте поле пустым, чтобы предлагать OpenPay при любой сумме.
Аккаунт OpenPay
Merchant ID, закрытый ключ (sk_) и открытый ключ (pk_) находятся в вашем кабинете OpenPay в разделе Settings (Configuración). В этом разделе есть ссылки на кабинеты песочницы и боевой режим для Мексики, Колумбии и Перу.
Account country: страна вашего аккаунта OpenPay. От неё зависят API OpenPay, библиотека openpay.js этой страны и принимаемые валюты. По умолчанию: Mexico.
Sandbox mode: использует песочницу OpenPay (тестовые ключи, без реальных списаний) и переключает на песочницу и ключи, и API. Пока режим включён, на странице оформления заказа показывается значок SANDBOX MODE. По умолчанию: включено. Выключите его, чтобы принимать настоящие платежи.
Sandbox Merchant ID: Merchant ID из кабинета песочницы, раздел Settings (Configuración), API-ключи.
Sandbox Private Key: закрытый ключ песочницы. Начинается с sk_. Используется только на сервере; никому его не передавайте.
Sandbox Public Key: открытый ключ песочницы. Начинается с pk_. openpay.js использует его в браузере для токенизации карты.
Live Merchant ID: Merchant ID из боевого кабинета, раздел Settings (Configuración), API-ключи.
Live Private Key: закрытый боевой ключ (sk_...).
Live Public Key: открытый боевой ключ (pk_...).
Сохранённые закрытые ключи больше никогда не отображаются. Поле остаётся пустым и показывает Saved — leave empty to keep it. Вводите новое значение, только если хотите его изменить. Чтобы удалить сохранённый закрытый ключ, отметьте Clear the saved key on save под полем и нажмите Save.
Webhook
Вебхук не обязателен, но рекомендуется. Он подтверждает платежи, когда покупатель не возвращается со страницы 3D Secure, например после закрытия браузера. В кабинете OpenPay перейдите в Settings > Webhooks и добавьте URL, который показан в поле Webhook URL в этом разделе. В OpenCart 3 он выглядит так: https://your-store/index.php?route=extension/payment/wcp_openpay_gateway/webhook, в OpenCart 4 так: https://your-store/index.php?route=extension/wcp_openpay_gateway/payment/wcp_openpay_gateway.webhook. Он формируется из адреса витрины вашей установки OpenCart. Скопируйте его точно в таком виде, как он показан в настройках. Добавьте вебхук в кабинет каждого режима, который вы используете (песочница и боевой режим).
Когда вы добавляете вебхук, OpenPay отправляет на этот URL код подтверждения. Код появляется в этом разделе с датой получения, поэтому вы можете подтвердить вебхук в кабинете OpenPay. До этого раздел показывает No verification code received yet.
Расширение обрабатывает следующие события:
OpenPay не подписывает вебхуки, поэтому расширение никогда не доверяет самому уведомлению. Оно использует его только для того, чтобы найти списание, а затем читает списание через API OpenPay закрытым ключом того режима и той страны аккаунта, в которых прошёл платёж. Уведомление о списании, которое этот магазин не создавал, игнорируется. Вебхук работает и тогда, когда магазин находится в режиме обслуживания: OpenCart 3 пропускает запросы платёжных расширений, а в OpenCart 4 расширение добавляет стартовое действие (startup action), которое пропускает вебхук и возврат покупателя со страницы 3D Secure.
Заказы
OpenCart создаёт заказ на шаге Confirm Order без статуса (неполный заказ). Заказ получает статус только после того, как OpenPay подтвердит списание. Отклонённая карта или неуспешная проверка 3D Secure оставляют заказ без статуса, примечание объясняет причину, и покупатель может оплатить снова. Каждое поле ниже перечисляет ваши статусы заказов OpenCart; собственные статусы можно создать в разделе System > Localisation > Order Statuses.
Order Status After Payment: OpenPay подтвердил списание, а его сумма и валюта совпадают с заказом. По умолчанию: Processing.
Awaiting OpenPay Payment: списание выполняется (ещё не захвачено); вебхук позже завершит его или отметит как неуспешное. По умолчанию: Pending.
OpenPay Payment On Hold: OpenPay списал сумму или валюту, отличные от заказа, либо списание было завершено после отмены заказа. По умолчанию: Pending.
Payment Error Status: списание по заказу, ожидающему OpenPay, или по заказу на удержании не прошло, было отменено или истекло. По умолчанию: Failed.
Refunded Status: списание полностью возвращено со страницы заказа. Частичные возвраты только добавляют примечание. По умолчанию: Refunded.
Дополнительно
Debug log: записывает шаги платежа в wc_opy_debug.log.php в папке логов OpenCart (storage/logs). Файл нельзя открыть через веб; при достижении 5 МБ он переносится в wc_opy_debug.old.log.php. Ошибки и предупреждения записываются даже тогда, когда опция выключена. Ключи, данные карт и данные покупателей никогда не записываются. По умолчанию: выключено.
Log: показывает размер журнала и его последние записи. Нажмите Clear log, чтобы очистить его.
Delete data on uninstall: если включено, при удалении расширения удаляются настройки шлюза, сохранённый код подтверждения вебхука и журнал. Записи списаний OpenPay по заказам относятся к истории платежей и всегда сохраняются, поэтому заказы можно вернуть и после повторной установки. По умолчанию: выключено.
Импорт / экспорт
Export: Download JSON сохраняет настройки в файл JSON. Закрытые ключи не экспортируются.
Import: вставьте ранее экспортированный JSON и нажмите Import, чтобы восстановить настройки. Сохранённые закрытые ключи сохраняются.
Оформление заказа
На шаге Payment Method покупатель выбирает способ оплаты (по умолчанию Credit or debit card (OpenPay)). На шаге Confirm Order покупатель видит ваше описание и форму карты: Cardholder name, Card number, Expiry (MM/YY) и Card code (CVV). В режиме песочницы форма показывает SANDBOX MODE — Test environment. No real charges will be made. OpenCart создаёт заказ на этом шаге, по-прежнему без статуса. В OpenCart 4 покупатель выбирает способ оплаты кнопкой Choose в блоке способа оплаты, в окне Payment method options; форма карты находится в блоке подтверждения внизу страницы оформления заказа, над кнопкой Confirm Order. Когда покупатель нажимает Confirm Order, openpay.js в браузере превращает карту в одноразовый токен, а библиотека антифрода добавляет идентификатор сессии устройства. На ваш магазин отправляются только эти два значения. Если форма заполнена не полностью, под ней появляется сообщение Please fill in all card fields.
Затем расширение создаёт списание с 3D Secure на сумму заказа в валюте заказа и отправляет покупателя на страницу 3D Secure его банка, которую отдаёт OpenPay. Каждая попытка получает собственный номер заказа OpenPay. Описание списания — Order #, номер заказа и название вашего магазина. Имя, e-mail и телефон покупателя из платёжного адреса передаются в OpenPay; аккаунт покупателя в OpenPay не создаётся.
Когда покупатель возвращается, расширение читает списание через API OpenPay. Заказ отмечается оплаченным только после подтверждения OpenPay: списание должно принадлежать этому заказу, быть завершённым и точно совпадать с суммой и валютой заказа. Затем заказ получает статус стандартным для OpenCart способом, с обычными письмами о заказе и обновлением остатков, а покупатель видит страницу успешного оформления заказа OpenCart с сообщением Your card payment has been received. Если OpenPay сообщает, что списание выполняется, заказ получает статус Awaiting OpenPay Payment, а на странице выводится We are confirming your card payment with OpenPay. The order will be updated automatically — please do not pay again. Если результат ещё не известен, страница Payment confirmation показывает тот же текст с кнопкой Check again и кнопкой Back to checkout; вебхук устанавливает статус заказа, как только поступает. Если выполняемое списание позже не удалось, на странице успеха выводится Your OpenPay card payment was not completed. Please contact us about this order.
Если карта отклонена или 3D Secure не пройден, заказ остаётся без статуса, добавляется примечание, а покупатель возвращается на оформление заказа с сообщением The card payment was not completed (declined or 3-D Secure failed). Please try again or use another card. Корзина сохраняется. На OpenCart 4 это сообщение выводится над страницей оформления заказа. OpenCart 3 создаёт новый заказ каждый раз, когда показывается шаг Confirm Order; OpenCart 4 сохраняет один заказ на время оформления и обновляет его, поэтому покупатель оплачивает тот же заказ повторно новой попыткой. Перед новой попыткой расширение проверяет предыдущее списание по корзине: если оно фактически оплачено, этот заказ получает статус без повторного списания; если оно ещё выполняется, покупатель видит A previous payment for this order is still being processed. Please do not pay again — the order will be updated automatically.; если состояние проверить нельзя, новое списание не производится, и покупатель видит We could not confirm the status of your previous payment attempt. Please try again in a few minutes. Уже оплаченная корзина никогда не списывается повторно.
OpenCart 4 хранит заказ в оформлении до показа страницы успеха. Если за это время заказ был закрыт (например, его списание не прошло после ожидания оплаты, либо вы его отменили или вернули), покупатель возвращается на оформление заказа с сообщением This order can no longer be paid. Please reload the checkout page and confirm the order again., а следующее нажатие Confirm Order оплачивает новый заказ. Если у этого заказа уже есть статус, а в корзине теперь другие товары или количества, покупатель также возвращается на оформление заказа, и новая корзина получает новый заказ.
Отклонённые карты получают понятное сообщение, например The card has insufficient funds. Please use another card., The card has expired. Please use another card. или The security code (CVV) is not valid. Please check it and try again. Технические ошибки OpenPay покупателям никогда не показываются; они попадают в журнал и в примечания к заказам.
Способ оплаты скрывается на странице оформления заказа, если он выключен, если ключи текущего режима заполнены не полностью или если покупатель платит в валюте, которую страна аккаунта не принимает.
Расширение принимает только оплату картами, списания происходят сразу. Оно не поддерживает сохранённые карты, подписки, беспроцентную рассрочку (MSI) или оплату частями, оплату бонусными баллами карты, наличные, платежи SPEI, PSE или CoDi, а также раздельные авторизацию и захват.
Заказы и возвраты
Статусы заказов
No status (missing order): покупатель находится на странице 3D Secure, не завершил оплату или карта была отклонена. В Sales > Orders такие заказы показываются только с фильтром Order Status, установленным в значение Missing Orders.
В OpenCart 4 неоплаченный заказ оформления может получить статус Voided, который OpenCart 4 устанавливает, когда покупатель возвращается на шаг Confirm Order. Расширение считает такой заказ заказом без статуса, и последующий платёж по-прежнему подтверждает его.
Order Status After Payment (default Processing): оплата подтверждена. В примечании указаны идентификатор списания OpenPay и режим (боевой или песочница).
Awaiting OpenPay Payment (default Pending): OpenPay сообщает, что списание выполняется (ещё не захвачено). Заказ переходит в статус Order Status After Payment, когда списание завершено, или в Payment Error Status, если оно не прошло.
OpenPay Payment On Hold (default Pending): OpenPay сообщает о завершённом списании с суммой или валютой, отличными от заказа (заказ не отмечается оплаченным, примечание показывает разницу), либо о платеже, поступившем по заказу, который уже был отменён или возвращён. Проверьте заказ и обработайте его или верните платёж.
Payment Error Status (default Failed): выполнявшееся списание не прошло, было отменено или истекло.
Refunded Status (default Refunded): списание полностью возвращено через расширение.
Если по уже оплаченному заказу или корзине приходит второе завершённое списание, заказ не меняется. Примечание, начинающееся с OpenPay WARNING, на оплаченном заказе просит вас вернуть дубликат в кабинете OpenPay.
Примечания — это записи в History заказа, которые покупатель не видит.
Вкладка VibeFox OpenPay Gateway
В Sales > Orders откройте заказ, оплаченный через OpenPay. Внизу страницы заказа, рядом с History и Additional, вкладка VibeFox OpenPay Gateway показывает идентификатор списания, его статус, среду и страну аккаунта с меткой Sandbox для платежей из песочницы, суммы Charged / order, сумму возврата, форму возврата, историю возвратов и OpenPay notes заказа. Вкладка показывается пользователям, имеющим доступ к расширению.
Возвраты
Для аккаунтов из Мексики и Перу: на вкладке введите Amount (подставляется сумма, которая ещё не возвращена), при желании Reason (optional), и нажмите Refund via OpenPay. Подтвердите вопрос Refund this amount through OpenPay? This cannot be undone. Поддерживаются полные и частичные возвраты, не более суммы, списанной OpenPay. Вам нужно право на изменение расширения (задаётся в System > Users > User Groups). Возврат отправляется с ключами того режима и той страны аккаунта, в которых было выполнено списание, поэтому ключи этого режима должны быть заданы. Если OpenPay не принимает возврат, вкладка показывает ошибку, например OpenPay refund failed: ..., и возврат не регистрируется. Успешный возврат добавляется в историю возвратов и в примечания с идентификатором возврата OpenPay. Полный возврат переводит заказ в статус Refunded Status без уведомления покупателя и без возврата товаров на склад, как и при ручной смене статуса. Частичный возврат статус не меняет. Возвраты доступны после подтверждения платежа OpenPay; заказ, удержанный из-за расхождения суммы, через расширение не возвращается.
OpenPay Колумбия не поддерживает возврат по картам через API, как и официальные интеграции OpenPay. Для колумбийских списаний вкладка не показывает форму возврата и объясняет причину; верните списание в кабинете OpenPay.
Возвраты товаров в Sales > Returns деньги через OpenPay не возвращают.
Возвраты и чарджбэки, выполненные в кабинете OpenPay, приходят через вебхук и один раз добавляются в примечания. Статус заказа автоматически не меняется. При необходимости обновите его вручную.
Лицензионный ключ
Расширение работает с лицензионным ключом VibeFox, полученным на vibefox.net. Блок лицензии License — VibeFox OpenPay Gateway — первый блок на странице Extensions > Extensions > Payments > VibeFox OpenPay Gateway > Edit, над настройками. Вставьте ключ в License key и нажмите Activate. После этого блок показывает ключ в замаскированном виде, статус (например, дату, до которой лицензия действует, и ваш домен), а также кнопки Check now, чтобы проверить статус ещё раз, Change key, чтобы ввести другой ключ, и Remove key, чтобы удалить ключ из этого магазина. Ниже находятся строка Product: opencart-payment-openpay и ссылка Manage licenses and domains in your account, которая открывает ваш аккаунт на vibefox.net. Изменить ключ могут только пользователи-администраторы с правом Modify для расширения. Тексты блока следуют языку административной части (включены английский и русский).
Если ключ не принят, блок сообщает причину, например Key not found, This key belongs to another product, Domain limit reached или License expired on с датой. После смены адреса магазина или после освобождения места для домена в вашем аккаунте нажмите Check now. Если сервер лицензий недоступен, расширение продолжает работать по последнему известному статусу.
Один ключ работает на одном домене: адрес магазина из конфигурации OpenCart. Удаление ключа из магазина не освобождает место для домена. Освободите его в своём аккаунте на vibefox.net.
Без активного ключа OpenPay покупателям на странице оформления заказа не показывается. Если платёж всё же начат, покупатель видит This payment method is not available. Please choose another one. Пользователь-администратор, вошедший в админ-панель в том же браузере, по-прежнему видит способ оплаты в магазине с пометкой (unlicensed — visible to admins only), так что вы можете настроить и проверить расширение до покупки ключа. В OpenCart 4 этот предпросмотр недоступен: магазин не видит, что вы вошли в админ-панель, поэтому без активного ключа способ оплаты скрыт для всех. После того как вы один раз откроете страницу Edit, на Dashboard админ-панели появится напоминание. Закройте его кнопкой ×, чтобы скрыть на 7 дней. Существующие заказы не затрагиваются: уже начатые платежи по-прежнему подтверждаются, а возвраты работают.
Когда лицензия истекает, расширение продолжает работать, но для обновлений и поддержки нужно продление. Статус автоматически проверяется снова при открытии Dashboard или страницы Edit в админ-панели: раз в день в первые 14 дней после ввода ключа, затем раз в неделю. Задание cron не требуется. При удалении расширения лицензионный ключ и статус лицензии всегда удаляются.
Устранение неполадок
OpenPay не появляется на странице оформления заказа: проверьте, что лицензия активна, что Enable / Disable включено и что в текущем режиме заполнены все три ключа: ключи песочницы в режиме песочницы, боевые ключи в боевом режиме. Проверьте, что покупатель платит в валюте, принимаемой Account country (Мексика: MXN, USD; Колумбия: COP, USD; Перу: PEN, USD). Страница настроек показывает предупреждение в каждом из этих случаев. Также проверьте, что платёжный адрес входит в выбранную Geo Zone и что сумма заказа достигает Total, заданного в настройках.
Оплата прошла, но заказ остаётся без статуса: покупатель не вернулся со страницы 3D Secure, а вебхук не работает. Проверьте, что URL вебхука добавлен в кабинете OpenPay того режима, которым вы пользуетесь, точно в таком виде, как показано в настройках, с перечисленными выше событиями. Проверьте, что ключи того режима, в котором прошла оплата, заполнены: без них вебхук отвечает not configured, и OpenPay повторяет запрос позже. Заказ также получает статус, когда покупатель возвращается в магазин или пытается снова оплатить ту же корзину.
Вебхук отвечает ignored (unknown order): списание создано не этим магазином, например списание другого магазина на том же аккаунте OpenPay. Ничего не меняется.
Вебхук отвечает verification failed: не удалось обратиться к API OpenPay для чтения списания. OpenPay повторяет вебхук.
Вебхук отвечает busy: корзина в тот же момент обновлялась другим запросом, или не удалось установить статус заказа. OpenPay повторяет вебхук. Включите Debug log, чтобы увидеть причину.
URL вебхука в браузере показывает invalid body: это нормально. URL принимает только уведомления от OpenPay.
Покупатель видит The secure card form could not be loaded: openpay.js или библиотека антифрода OpenPay не загрузились в браузере либо не удалось создать идентификатор сессии устройства. Попросите покупателя обновить страницу и повторить попытку.
Покупатель видит The payment could not be processed right now: OpenPay отклонил запрос или не ответил. Причина указана в журнале и в примечаниях к заказу. Типичная причина — неверный Merchant ID или закрытый ключ. Если OpenPay не ответил, проверьте списание в кабинете OpenPay, прежде чем покупатель заплатит повторно.
Покупатель видит This test card cannot be used for real payments: была использована тестовая карта песочницы, когда режим песочницы выключен.
Покупатель видит Billing email is required for OpenPay: у заказа нет корректного адреса e-mail.
Заказ в статусе OpenPay Payment On Hold после оплаты: прочитайте OpenPay notes на вкладке (см. Статусы заказов), затем обработайте заказ или верните платёж.
Возврат не проходит с сообщением о режиме: заказ был оплачен в режиме песочницы или в боевом режиме, а ключи этого режима не заданы. Введите их и повторите попытку.
Возврат не проходит с сообщением The order is being updated right now: вебхук или другой запрос в тот же момент обновлял заказ. Повторите попытку через некоторое время.
Удаление
Перейдите в Extensions > Extensions, выберите тип Payments и нажмите Uninstall (красная кнопка −) рядом с VibeFox OpenPay Gateway. Лицензионный ключ и статус лицензии этого расширения всегда удаляются. OpenCart всегда удаляет собственные настройки расширения: Enable / Disable, Sort Order, Geo Zone, Total и статусы заказов из раздела Orders, которые при повторной установке возвращаются к значениям по умолчанию. Также удаляется событие OpenCart, принадлежащее расширению (в OpenCart 4 — его события и стартовое действие, которое пропускает вебхук и возврат со страницы 3D Secure в режиме обслуживания). Если включено Delete data on uninstall, удаляются остальные настройки шлюза (название, описание, страна аккаунта, режим песочницы, ключи, журналирование), сохранённый код подтверждения вебхука и журнал. Если опция выключена, они сохраняются для повторной установки. Записи списаний и возвратов OpenPay всегда сохраняются, поэтому заказы, оплаченные ранее, можно вернуть и после повторной установки. Существующие заказы сохраняют свои платёжные примечания.
В OpenCart 4, чтобы удалить и файлы расширения, после удаления перейдите в Extensions > Installer, нажмите Uninstall (оранжевая кнопка −) рядом с VibeFox OpenPay Gateway в списке установленных расширений, затем Delete (красная кнопка с корзиной), чтобы удалить загруженный пакет.
OpenPay — товарный знак его правообладателя. Это расширение не связано с OpenPay и не одобрено OpenPay.
