- MODX 3
- PHP 8.2
- miniShop3
msp3WebPay
msp3WebPay подключает WEBPAY к MiniShop3 в MODX Revolution 3. Покупатель уходит на страницу оплаты. Статус «оплачен» ставит MiniShop3 по уведомлению. Пакет сам статус заказа не меняет.
Возврат покупателя в браузере не оплачивает заказ. Публичного запроса статуса у WEBPAY для пакета нет. Вкладка заказа показывает попытки, уже сохранённые на сайте.
Пространство имён настроек: msp3webpay. Уведомления: assets/components/msp3webpay/webhook.php. Возврат покупателя: assets/components/msp3webpay/return.php.
Возможности
- Карта, деньги списываются сразу: способ Оплата через WebPay (карта).
- ERIP: способ Оплата через WebPay (ERIP). Префикс
WP-у номера заказа только еслиuuidзаказа начинается с0(ограничение ERIP). - Холд: способ Оплата через WebPay (двухстадийная). Заказ станет оплаченным после списания.
- Одно уведомление в кабинете WEBPAY. По нему пакет различает оплату, отказ, возврат и отмену.
- Списание холда, отмена холда и возврат требуют отдельного входа в кабинет. Нужны логин и пароль.
- Пока холд не списан, возврат не уходит.
- Настройка
msp3webpay_testвыбирает хост страницы оплаты:securesandbox.webpay.byилиpayment.webpay.by. После установки настройка уже включена.
Системные требования
| Требование | Версия |
|---|---|
| MODX Revolution | 3.0+ |
| MiniShop3 | 1.14.0-beta1 и новее |
| PHP | 8.2+ |
| pdoTools | 3.0.0 и новее (зависимость транспорта) |
| Доступ | номер магазина, секретный ключ, логин и пароль кабинета |
| Сайт | HTTPS на webhook без 301 (требование кабинета WEBPAY) |
Зависимости
Статус заказа после уведомления задают настройки MiniShop3: ms3_status_paid, ms3_payment_on_failed_status, ms3_payment_on_refunded_status.
Установка
- Установите MiniShop3.
- Добавьте провайдер modstore.pro (Система → Управление пакетами → Провайдеры): URL
https://modstore.pro/extras/, email и API-ключ из личного кабинета modstore. - Установите пакет msp3WebPay через Управление пакетами (в Show Details выберите провайдер modstore.pro).
- Очистите кэш MODX.
Резолвер создаёт три активных способа:
| Название | Класс |
|---|---|
| Оплата через WebPay (карта) | Msp3WebPay\Payment\WebPayPayment |
| Оплата через WebPay (ERIP) | Msp3WebPay\Payment\WebPayEripPayment |
| Оплата через WebPay (двухстадийная) | Msp3WebPay\Payment\WebPayTwoStagePayment |
В msPayment.properties можно хранить store_id, secret_key, secret, api_username, api_password, currency, test. Непустые properties перекрывают системные настройки в send(), списании, отмене и возврате.
webhook.php для проверки подписи читает секрет из properties способа, иначе msp3webpay_secret_key.
Откуда брать номер магазина и секрет: Быстрый старт.
Быстрая настройка уведомлений
В кабинете WEBPAY укажите один адрес:
https://ваш-домен.ru/assets/components/msp3webpay/webhook.phpHTTPS без 301. Заявка на оплату тоже отправляет поле wsb_notify_url на этот же путь. Кабинет всё равно нужен: без адреса в WEBPAY уведомления могут не дойти.
Покупатель после оплаты попадает на return.php. Статус эта страница не ставит.
Плагин msp3webpay_bootstrap подключает автозагрузку классов и вкладку заказа в менеджере (события OnMODXInit, msOnManagerCustomCssJs).
Архитектура
Быстрые ссылки
| Нужно | Документ |
|---|---|
| Установить и принять первый платёж | Быстрый старт |
Ключи msp3webpay_* | Системные настройки |
| Уведомление, холд, ERIP | Интеграция |
| Статус, возврат до списания, return | FAQ |
| Оформление заказа MS3 | MiniShop3: заказ |
