msp3YooKassa - Интеграция с платежной системой ЮKassa

Встречайте msp3YooKassa — приём оплаты через ЮKassa для магазинов на MiniShop3 (MODX Revolution 3.x). Карты, кошельки и остальные способы из вашего договора с ЮKassa, входящие HTTP-уведомления (webhook) для актуализации заказа, по желанию — чеки 54-ФЗ. Внутри — официальный SDK yoomoney/yookassa-sdk-php и работа по API ЮKassa.


Зачем он нужен
Чтобы на MiniShop3 можно было принимать оплату через ЮKassa без самописных обвязок: один пакет, системные настройки с префиксом msp3yookassa_, два готовых способа оплаты (одно- и двухстадийная схема). Статусы платежа смотрите в кабинете ЮKassa. На сайте заказ обновляется после обработки webhook.

Для покупателя
Ничего отдельно в шаблоны подключать не нужно — используются стандартные сценарии оплаты MiniShop3. Покупатель выбирает способ «Оплата через ЮKassa» или двухстадийный вариант, уходит на сторону ЮKassa и возвращается по success/fail URL (при необходимости их можно задать в настройках компонента).

Для менеджера магазина
После установки в настройках MiniShop3 появляются два способа оплаты:



  • Оплата через ЮKassa — одностадийно, списание по правилам выбранного сценария ЮKassa.
  • Оплата через ЮKassa (двухстадийная) — холд средств на карте, затем в менеджере MODX вручную подтверждаете списание или отменяете платёж.
Минимум в Системные настройки (namespace msp3yookassa): msp3yookassa_shop_id и msp3yookassa_secret_key из личного кабинета ЮKassa. Дополнительно — чеки 54-ФЗ (msp3yookassa_payment_receipt), код НДС (msp3yookassa_vat_strong, значения 1–10 по справочнику ЮKassa), свои URL успеха и ошибки, отладочные логи (msp3yookassa_debug).

Для двухстадийного сценария после оплаты в ЮKassa статус платежа — waiting_for_capture. Подтверждение списания — процессор Msp3YooKassa\Processors\CaptureProcessor с параметром order_id.



HTTP-уведомления
В кабинете ЮKassa: Интеграция → HTTP-уведомления (настройки). URL для сайта, например:

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

По требованиям ЮKassa адрес должен быть на HTTPS (TLS 1.2+). Компонент отвечает 200 OK после разбора JSON-уведомления.



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

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



Режим проверки чеков в тесте имитирует кассу, физический чек в ОФД не формируется — это нормально для отладки (раздел о тестировании). Для боя включите передачу данных чека и убедитесь, что в заказе есть email покупателя.

Для разработчика
Интеграция опирается на API MiniShop3 и обработчики платежей компонента. Термины одно- и двухстадийной оплаты совпадают с описанием процесса оплаты ЮKassa. Статусы объекта платежа — в справочнике API.

Подробная инструкция по установке и полям настроек — в документации на docs.modx.pro.

Установка и совместимость

  • MODX Revolution 3.0+
  • MiniShop3
  • PHP 8.2+
  • pdoTools 3.x
Быстрый старт

  1. Установите транспортный пакет через УстановщикУправление пакетами.
  2. В кабинете ЮKassa укажите URL webhook на …/assets/components/msp3yookassa/webhook.php.
  3. В Системные настройки заполните msp3yookassa_shop_id и msp3yookassa_secret_key (боевые или test_).
После установки не забудьте прописать webhook в кабинете ЮKassa и ключи в системных настройках.

Ссылки

Иван Бочкарев
26 апреля 2026, 13:33
modx.pro
217
+8
Поблагодарить автора Отправить деньги

Комментарии: 7

Ivan K.
26 апреля 2026, 22:04
0
Супер. А для Сбербанка будет похожий компонент?
    Иван Бочкарев
    27 апреля 2026, 03:52
    0
    Как оказалось Сбербанк юзает Юкассу.
    Я когда оформлял эквайринг — меня отправили на нее www.sberbank.ru/ru/s_m_business/bankingservice/yookassa.
      Ivan K.
      27 апреля 2026, 09:29
      0
      Видимо это для новых клиентов, которые подключаются. У меня в старом интернет-магазине подключено не через Ю-кассу, а напрямую через сбер, вернее и то и другое))

      Кстати, глянул на новые тарифы — 0.8% за отправку чека, меня впечатлило))
        Иван Бочкарев
        27 апреля 2026, 09:48
        0
        Напиши в ЛС — сделаем для Sberbank, дополнение уже есть — нужно протестировать
          Ivan K.
          27 апреля 2026, 11:13
          0
          На моем сайте протестировать не получится, так как я только начал перенос MS2 на MS3, да и сервер для разработок у меня локальный, в инет не смотрит.
            Николай Савин
            27 апреля 2026, 11:50
            +1
            Локальный сервер кстати умеет подключаться к интернету и быть оттуда доступен через тунелирование. Например меня спасает утилита ngrok. Она создает доступный в интернете временный URL. Сервисы его видят, могут слать на него запросы, а утилитка их перенаправляет на локальный сервер. При разработке amoCRM очень выручало
              Иван Бочкарев
              27 апреля 2026, 11:51
              0
              Я так же все локально разрабатывал и тестировал и все ок было
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    7