Автор дополнения
Иван Бочкарев
Пакетов
33
Закачек
216
Обычно отвечает в течение суток
Автор дополнения
Пакетов
33
Закачек
216
Обычно отвечает в течение суток
Версия 0.2.1-pl
Дата выпуска 10.09.2026
Загрузки 0
Просмотры 8
Внимание, этот компонент требует PHP 8.2 или выше!
Внимание, этот компонент требует MODX 3 или выше.
Дополнение подключает оплату заказов через Merchant API Яндекс Пэй и поддерживает несколько сценариев оплаты: обычную оплату, двухстадийную оплату, Яндекс Сплит и оплату по QR-коду.

После создания платежа покупатель перенаправляется на страницу оплаты Яндекс Пэй, а результат оплаты передаётся обратно на сайт через защищённый webhook. Статус заказа MiniShop3 автоматически обновляется в соответствии со статусом платежа.

Возможности

  • Оплата через Яндекс Пэй — стандартная одностадийная схема оплаты.
  • Двухстадийная оплата — сначала блокировка средств, затем подтверждение или отмена платежа.
  • Яндекс Сплит — возможность оплатить покупку частями.
  • Оплата по QR-коду — отдельный способ оплаты через Яндекс Пэй.
  • Автоматическая обработка webhook — получение статусов платежей от Яндекс Пэй.
  • Проверка подписи webhook с использованием JWKS и алгоритма ES256.
  • Возвраты — поддержка полного и частичного возврата платежа.
  • Кнопка оплаты на витрине — можно использовать сниппет mspYandexPayButton отдельно от стандартного процесса оформления заказа.
  • Sandbox — возможность протестировать интеграцию до перехода в production.
  • Production — переключение на рабочую среду после завершения тестирования.

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

После установки дополнения в MiniShop3 доступны следующие способы оплаты:

  • Яндекс Пэй — одностадийная оплата;
  • Яндекс Пэй (двухстадийная) — оплата с предварительной авторизацией;
  • Яндекс Пэй + Сплит — оплата покупки частями;
  • Яндекс Пэй QR — оплата по QR-коду.

Способы оплаты автоматически добавляются к доступным способам доставки MiniShop3. При необходимости их можно настроить отдельно для каждой доставки.

Безопасный webhook

Для подтверждения результата оплаты используется webhook Яндекс Пэй.

Дополнение принимает JWT от Яндекс Пэй и проверяет его подпись по публичным ключам JWKS. Поддерживаются отдельные настройки для sandbox и production.

Callback URL имеет следующий вид:

https://ваш-домен.ru/assets/components/mspyandexpay/webhook.php

Через webhook обрабатываются изменения состояния заказа и операций. Благодаря этому статус заказа в MiniShop3 обновляется автоматически после изменения состояния платежа.

Двухстадийная оплата

При использовании двухстадийной схемы деньги сначала авторизуются, но не списываются окончательно.

После этого магазин может:

  • подтвердить платёж и выполнить списание;
  • отменить авторизацию.

Такой сценарий удобен, например, когда окончательное списание необходимо выполнять только после подтверждения наличия товара или выполнения заказа.

Возвраты

Дополнение поддерживает возврат платежей через API Яндекс Пэй.

  • полный возврат;
  • частичный возврат.

После полного возврата можно автоматически перевести заказ MiniShop3 в указанный статус возврата.

Sandbox и тестирование

mspYandexPay поддерживает тестовую среду Яндекс Пэй.

Можно сначала настроить интеграцию, выполнить тестовую оплату и проверить обработку webhook, статусы заказа и возвраты, а затем переключиться на production.

Это позволяет проверить интеграцию с MiniShop3 до начала приёма реальных платежей.

Требования

  • MODX Revolution — 3.0 и выше;
  • PHP — 8.2 и выше;
  • MiniShop3 — 1.0 и выше;
  • HTTPS — обязателен для работы webhook и Checkout.

Необходимые PHP-зависимости входят в пакет. Отдельно устанавливать Composer на сайте не требуется.

Установка

  1. Установите MiniShop3.
  2. Установите пакет mspYandexPay через «Управление пакетами».
  3. Очистите кэш MODX.
  4. Укажите Merchant ID и API Key в системных настройках дополнения.
  5. Выберите среду — Sandbox или Production.
  6. Укажите Callback URL в кабинете Яндекс Пэй.
  7. Проверьте доступные способы оплаты и их привязку к доставкам MiniShop3.

Что нужно получить в Яндекс Пэй

Для работы дополнения необходимо подключить магазин в Яндекс Пэй и получить данные Merchant API:

  • Merchant ID;
  • Ключ Merchant API.

Для тестирования можно использовать Sandbox, после чего переключиться на рабочую среду.

Интеграция с MiniShop3

Дополнение использует штатные механизмы MiniShop3 для работы с заказами, способами оплаты и статусами. Установка не требует изменения ядра MiniShop3.

В результате покупатель проходит обычный процесс оформления заказа MiniShop3, выбирает Яндекс Пэй, выполняет оплату на стороне сервиса и возвращается на сайт. Информация о результате платежа передаётся через webhook и используется для обновления заказа.

Для разработчиков

Дополнение построено вокруг Merchant API Яндекс Пэй и предоставляет отдельные компоненты для различных сценариев оплаты.

В состав входят:

  • способы оплаты MiniShop3;
  • webhook для обработки событий Яндекс Пэй;
  • поддержка одностадийных и двухстадийных платежей;
  • операции возврата;
  • сниппет mspYandexPayButton;
  • поддержка Sandbox и Production;
  • настройки дополнения в пространстве имён mspyandexpay.

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.

[0.2.1] - 2026-09-10

Fixed

  • Настройка mspyandexpay_environment: combo в менеджере вместо xtype: list (в MODX 3 значение нельзя было сменить)
  • Привязка к доставкам: resolver при установке/обновлении линкует активные msPayment Яндекс Пэй ко всем активным доставкам (ms3_delivery_payments)

Changed

  • Документация Sandbox: тестовые карты (МИР/VISA), эмуляция сумм 10001 / 10002, чеклист флоу, Callback / demo Merchant ID
  • Плагин bootstrap подключает combo.environment.js на OnManagerPageInit
  • Версия пакета 0.2.1-pl

[0.2.0] - 2026-08-22

Added

  • Two-stage: YandexPayTwoStagePayment, processors capture / cancel, AUTHORIZED не переводит заказ в paid
  • Refund / partial refund: processor refund, RefundPayloadBuilder, Merchant API v2 POST .../refund
  • Split: settings payment_methods, preferred_payment_method, is_prepayment; YandexPaySplitPayment
  • Web SDK button: snippet mspYandexPayButton, assets/.../js/button.js, connector payment/create
  • Checkout merchant endpoints: checkout/render.php, checkout/create.php (JWT) + CheckoutRenderService / CheckoutCreateService
  • QR: YandexPayQrPayment, CashRegisterClient, setting qr_enabled, msPayment inactive by default
  • Webhook: обработка OPERATION_STATUS_UPDATED (CAPTURE / REFUND / VOID)
  • Setting refunded_status_id для статуса после полного возврата
  • Client: captureOrder, cancelOrder, refundOrder; Config getBaseUrlV2()

Changed

  • OrderBuilder читает методы оплаты / isPrepayment из настроек (вместо хардкода CARD + isPrepayment true)
  • Версия пакета 0.2.0-pl

[0.1.0] - 2026-08-21

Added

  • Payment provider MspYandexPay\Payment\YandexPayPayment для MiniShop3 (sendpaymentUrl, receive stub)
  • Yandex Pay Merchant API: YandexPayClient::createOrder(), getOrder() (Sandbox / Production)
  • OrderBuilder: корзина из msOrder / msOrderProduct, decimal money (brick/math)
  • Webhook assets/components/mspyandexpay/webhook.php: JWT ES256 + JWKS, merchantId, expiration
  • Idempotency: reuse payment_url при повторном send; UNIQUE event_key в webhook events
  • Таблицы: msp_yandex_pay_transactions, msp_yandex_pay_webhook_events
  • PaymentStatusMapper и смена статуса через ms3_order_status (OrderStatusService)
  • System settings namespace mspyandexpay: merchant_id, api_key, environment, success/fail URL, debug
  • Transport package: bootstrap plugin, resolvers (settings, schema, msPayment «Яндекс Пэй»)
  • Unit tests (PHPUnit); Sandbox E2E — вручную через системные настройки MODX
  • Lexicon RU/EN; логи [mspYandexPay] с маскированием API key

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