- MODX 3
- PHP 8.2
- miniShop3
Быстрый старт
Как принять первый платёж через PayKeeper на сайте с MiniShop3.
Требования
| Требование | Версия |
|---|---|
| MODX Revolution | 3.x |
| MiniShop3 | 1.14.0-beta1 и новее |
| PHP | 8.2+ |
| Сайт | HTTPS на webhook без 301 |
Для чека 54-ФЗ в заказе нужен email покупателя.
Шаг 1: Провайдер modstore и установка пакета
- Система → Управление пакетами → Провайдеры → добавьте modstore.pro:
- URL:
https://modstore.pro/extras/ - Email и API-ключ из личного кабинета modstore.pro
- URL:
- Убедитесь, что установлен MiniShop3.
- Управление пакетами → установите msp3PayKeeper (в Show Details укажите провайдер modstore.pro).
- Управление → Очистить кэш.
Резолвер создаёт два способа оплаты:
| Название | Класс |
|---|---|
| Оплата через PayKeeper | Msp3PayKeeper\Payment\PayKeeperPayment |
| Оплата через PayKeeper (двухстадийная) | Msp3PayKeeper\Payment\PayKeeperTwoStagePayment |
Секреты положите в msPayment.properties способа. Если properties пусты, пакет читает системные настройки.
Откуда брать ключи
Для демо хватает публичного стенда из шага 3. Ниже путь в кабинете, которым вы сами управляете.
URL сервера
msp3paykeeper_server_url это адрес кабинета PayKeeper без / в конце. Его видно в адресной строке, когда вы открываете личный кабинет.
Публичный демо-стенд: https://demo.paykeeper.ru. Тот же логин demo на https://demo.server.paykeeper.ru токен не получает.
Логин и пароль API
JSON API ходит с Basic Auth. Логин и пароль те же, что у пользователя кабинета. PayKeeper рекомендует отдельного пользователя, не тот, под которым вы правите настройки каждый день.
- Откройте страницу настроек кабинета.
- Раздел Доступ к панели администратора.
- Создайте пользователя и задайте пароль.
- В MODX это
msp3paykeeper_api_loginиmsp3paykeeper_api_password.
Проверка пары: GET {server_url}/info/settings/token/ с Basic Auth. Ответ 200 содержит JSON с полем token. Ответ 401 значит, что логин или пароль не те. Как устроен токен: безопасность JSON API.
Секретное слово
msp3paykeeper_secret_word подписывает POST-оповещения. Пароль API для этого не подходит.
- Настройки → Получение информации о платежах.
- Способ получения уведомлений: POST-оповещения.
- URL обработчика:
https://ваш-домен.ru/assets/components/msp3paykeeper/webhook.php. Только HTTPS, без Basic Auth и без 301. - Секретное слово впишите сами или нажмите генерацию. Допустимы латинские буквы, цифры и знаки препинания.
Формула подписи и ответ OK: приём POST-оповещений.
На публичном демо-стенде готового секретного слова в документации нет. Его задают в кабинете этого стенда. Без слова webhook не проверить. Счёт при этом уже создаётся.
Ядро MiniShop3 на /api/v1/payment/webhook/{id} ждёт JSON. В кабинет PayKeeper этот адрес не ставьте.
Холд
Отдельной настройки в MODX нет. В кабинете PayKeeper включите двухэтапный режим и в MiniShop3 выберите способ Оплата через PayKeeper (двухстадийная).
Шаг 2: Куда вписать в MODX
- Настройки → Системные настройки, фильтр
msp3paykeeper. - Либо properties способа:
server_url,api_login,api_password,secret_word. Непустые properties перекрывают системные настройки. - Очистите кеш MODX.
Список полей: Системные настройки.
Шаг 3: Демо-кабинет
В примерах JSON API PayKeeper публикует стенд:
msp3paykeeper_server_url:https://demo.paykeeper.rumsp3paykeeper_api_loginиmsp3paykeeper_api_password:demo/demo
GET /info/settings/token/ и POST /change/invoice/preview/ на этой паре отвечают 200.
Карты смотрите на форме после перехода на invoice_url.
Шаг 4: Способ оплаты в MiniShop3
- В админке MiniShop3 откройте Настройки → Оплаты.
- Включите Оплата через PayKeeper. Для холда включите Оплата через PayKeeper (двухстадийная) и двухэтапный режим в кабинете PayKeeper.
- Привяжите способ к сценарию оформления заказа.
Шаг 5: Боевой режим
- Боевой
server_url, логин и пароль отдельного пользователя, секретное слово из раздела Получение информации о платежах. - URL уведомлений на пакетный
webhook.php. - Контрольный платёж. Проверьте
OKв ответе webhook и статус заказа. - Выключите
msp3paykeeper_debug.
Двухстадийный заказ не станет оплаченным, пока не спишете холд. Подробнее: Интеграция.
