Автор дополнения
Ivan Bochkarev
Пакетов
12
Закачек
79
Обычно отвечает в течение нескольких дней
Автор дополнения
Пакетов
12
Закачек
79
Обычно отвечает в течение нескольких дней
Версия 1.0.0-pl
Дата выпуска 23.04.2026
Загрузки 1
Просмотры 96
Внимание, этот компонент требует PHP 8.2 или выше!
Внимание, этот компонент требует MODX 3 или выше.
msp3YooKassa — приём оплаты через ЮKassa для MiniShop3 на MODX Revolution 3.x

Поддерживаются карты, кошельки и остальные способы из вашего договора с ЮKassa. Связка с сервисом — по официальному API (HTTP Basic: shopId и секретный ключ), внутри используется SDK yoomoney/yookassa-sdk-php. Статусы смотрите в кабинете ЮKassa. На сайте заказ подтягивается по входящим HTTP-уведомлениям (webhook).

Особенности
  • рассчитано на MiniShop3 и MODX 3.0+
  • одно- и двухстадийные схемы в терминах процесса оплаты ЮKassa: сразу списание или холд waiting_for_capture с последующим подтверждением
  • свои URL успеха и ошибки, при необходимости — подробные логи в MODX

Регистрация в ЮKassa

Сначала заведите магазин в ЮKassa и возьмите в разделе интеграции идентификатор магазина и секретный ключ. С чего начать технически — в быстром старте для разработчиков.



HTTP-уведомления

В кабинете укажите URL приёма уведомлений: Интеграция → HTTP-уведомления (страница настроек). По правилам ЮKassa адрес должен быть на HTTPS (TLS 1.2+), обычно порт 443 или 8443.

Пример для вашего сайта:

ВАШ_ДОМЕН/assets/components/msp3yookassa/webhook.php

Дополнение разбирает тело уведомления (JSON) и отвечает 200 OK, как требует ЮKassa.



Настройка в MODX

После установки откройте системные настройки с префиксом msp3yookassa_ (пространство имён msp3yookassa) и заполните как минимум:

  • Идентификатор магазина — ключ msp3yookassa_shop_id (это shopId из API)
  • Секретный ключmsp3yookassa_secret_key (второй параметр HTTP Basic к API)

По желанию включают чеки 54-ФЗ (msp3yookassa_payment_receipt), код НДС (msp3yookassa_vat_strong, значения 1–10 — справочник ЮKassa), свои success/fail URL и отладку msp3yookassa_debug.



Тестовый магазин

В кабинете ЮKassa есть тестовый магазин с отдельным shopId и ключом с префиксом test_. Чаще всего он появляется после ИНН и заполнения технических данных. Подставьте тестовые значения в настройки компонента так же, как боевые: сценарий оплаты как в бою, деньги не уходят.

Боевые карты в тесте не подходят. Берите номера тестовых карт из инструкции ЮKassa. Срок действия — любая дата позже сегодняшней. CVC и код 3-D Secure можно набрать любыми цифрами (конкретные карты и сценарии — в той же статье).

Чеки 54-ФЗ

В тесте можно включить проверку чеков: касса имитируется, чек в ОФД не уйдёт — так и задумано для отладки (раздел о тестировании).

Для реальных продаж включите передачу данных чека в настройках и проверьте кассу уже в боевом магазине. В заказе должен быть email покупателя.

Сценарии оплаты

ЮKassa умеет одностадийную оплату (статус succeeded) и двухстадийную: после оплаты — waiting_for_capture, дальше подтверждение или отмена. В админке MODX для подтверждения используется процессор Msp3YooKassa\Processors\CaptureProcessor с параметром order_id. Статусы подробно — в справочнике API и описании процесса оплаты.

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

После установки в магазине появятся:

  • Оплата через ЮKassa — одностадийно: списание по правилам выбранного сценария ЮKassa
  • Оплата через ЮKassa (двухстадийная) — холд средств, затем вручную в менеджере MODX можно подтвердить списание или отменить платёж



Документация ЮKassa: yookassa.ru/developers. Компонент: docs.modx.pro/components/msp3yookassa

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0-pl] - 2026-04-23

Added

  • YooKassa API integration for MiniShop3.
  • One-stage payment (immediate capture).
  • Two-stage payment (hold; capture/cancel from manager via Capture processor).
  • HTTP webhook endpoint to sync order status from YooKassa notifications.
  • Optional 54-FZ receipts (fiscalization) via ReceiptBuilder.
  • System settings: shop_id, secret_key, receipt mode, VAT code, success/fail URLs, debug flag.
  • Bootstrap plugin (OnMODXInit) for PSR-4 autoload of payment handlers.
  • Transport resolvers: settings, msPayment records (one-stage and two-stage classes), assets.
  • Payment send() success payload includes order_id, order_num, and msorder (UUID) for storefront integrations and debugging.
  • Build: optional modstore.pro transport encryption (EncryptedVehicle, resolve.encryption.php) — same pattern as ms3Favorites; enable with encrypt => true in _build/config.inc.php.

Changed

  • Runtime MODX log lines from this extra (including webhook and receipt debug, YooKassa payment flow) are written only when system setting msp3yookassa_debug is enabled.
  • Capture processor: log line on capture failure is also gated by msp3yookassa_debug (failure message still returned to the manager action).
  • Debug log label: YooKassa createPayment request distinguishes the API request body from the payment response.

Fixed

  • $modx->log(): context is no longer passed as the third argument (that parameter is the log target in MODX/xPDO). Passing an array there could corrupt HTTP output and break MiniShop3 JSON API (order/submit), causing frontend submission errors.
  • Order persistence after createPayment: if saving the order with yookassa_payment_id in properties fails, return a clear error instead of continuing silently.

Последние обсуждения в сообществе MODX.pro