msp3CDEKPay

Оплата через CDEK Pay для MiniShop3
Автор дополнения
Иван Бочкарев
Пакетов
44
Закачек
288
Обычно отвечает в течение суток
Автор дополнения
Пакетов
44
Закачек
288
Обычно отвечает в течение суток
Версия 1.0.0-pl
Дата выпуска 25.09.2026
Загрузки 0
Просмотры 3
Внимание, этот компонент требует PHP 8.2 или выше!
Внимание, этот компонент требует MODX 3 или выше.
Оплата через CDEK Pay для MiniShop3 — ссылка, СБП QR, чеки и управление платежами

msp3CDEKPay подключает CDEK Pay к MiniShop3 в MODX 3 и позволяет принимать оплату заказов через платёжную ссылку или QR-код СБП.

Дополнение также поддерживает работу с чеками 54-ФЗ и предоставляет управление платежными операциями из заказа MiniShop3.

Возможности

  • Оплата по платёжной ссылке.
  • Оплата по QR-коду СБП.
  • Webhook для получения результата оплаты.
  • Проверка подписи уведомлений секретным ключом магазина.
  • Возврат платежа.
  • Блокировка платёжной ссылки.
  • Синхронизация состояния платежа.
  • Просмотр попыток оплаты в заказе.
  • Чеки 54-ФЗ.
  • Просмотр списка чеков.
  • Чек полного расчёта.
  • Коррекция чека.
  • Привязка карты и счёта СБП.

Два способа оплаты

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

  • Оплата через CDEK Pay — платёжная ссылка;
  • Оплата через CDEK Pay (СБП QR) — оплата по QR-коду СБП.

Покупатель выбирает подходящий способ непосредственно во время оформления заказа.

Чеки 54-ФЗ

При включённой настройке и наличии кассы в кабинете CDEK Pay данные чека передаются вместе с заказом на оплату.

Для формирования чека необходим email покупателя.

Управление из заказа

Во вкладке заказа MiniShop3 доступны:

  • попытки оплаты;
  • возврат;
  • блокировка ссылки;
  • синхронизация;
  • список чеков;
  • чек полного расчёта;
  • коррекция.

Безопасность webhook

Уведомления CDEK Pay проверяются по секретному ключу магазина.

Для рабочего и тестового режимов используются соответствующие секреты.

Важные особенности

CDEK Pay в данном дополнении работает без холда.

Заказы дешевле 1 рубля не передаются в платёжную систему.

Требования

  • MODX Revolution 3.0+;
  • MiniShop3 1.14.0-beta1+;
  • PHP 8.2+;
  • PHP extensions curl и json;
  • логин магазина и тестовый/боевой секреты CDEK Pay;
  • HTTPS для webhook.

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-09-23

Первый публичный релиз компонента msp3CDEKPay для MODX 3 и MiniShop3.

Added

  • Интеграция CDEK Pay Merchant API: ссылка на оплату (CdekPayPayment) и QR СБП (CdekPaySbpPayment). Клиент ApiClient закрывает ордер, QR, блок ссылки, возврат, список платежей и чеков, коррекцию, чек полного расчёта, привязку карты и СБП, рекуррентное списание.
  • Канон MiniShop3: PaymentWebhookHandlerInterface и ms3_payment_lifecycle. Провайдер не пишет status_id.
  • Пакетный webhook.php на один URL кабинета CDEK и маршрут ядра /api/v1/payment/webhook/{payment_method_id}. Подпись объекта payment, поиск попытки по access_key.
  • Чеки 54-ФЗ через receipt_details. Email покупателя читается из адреса заказа.
  • Вкладка заказа: попытки, возврат, блокировка ссылки, синхронизация, чек полного расчёта, коррекция.
  • Привязка карт и счетов СБП: BindingService, сниппеты cdekPayBindings и cdekPayBindingReturn. Расписания нет.
  • Секреты сначала в msPayment.properties, иначе системные настройки msp3cdekpay_*. Транспорт EncryptedVehicle для modstore.pro. Локальная сборка: ENCRYPT=0.
  • HTTP через file_get_contents. Лексиконы ru.

Fixed

  • BaseProcessor::checkPermissions() объявлен как public, как требует MODX\Revolution\Processors\Processor.
  • connector.php отдаёт массив ProcessorResponse::getResponse(), а не сам объект ответа.
  • Bootstrap грузит классы через PSR-4. vendor/autoload.php после composer --no-dev имел один и тот же ComposerAutoloaderInit и ронял MODX, если стояло несколько extras.
  • Webhook payload в lifecycle без signature. HTTP-транспорт не ходит по file:// и не следует редиректам. Лог не пишет секреты.
  • BaseProcessor::initialize() сбрасывает общий modError. Иначе текст прошлого failure оставался на следующем success.
  • Возврат из вкладки не зовёт createCancellation, пока попытка не paid / partially_refunded. На pending ответ «сначала webhook», не общий conflict lifecycle. Холда у CDEK нет.

Dependencies

  • MODX 3.x, MiniShop3 >= 1.14.0-beta1, PHP >= 8.2. pdoTools 3.x нужен только для чанка &tpl сниппета cdekPayBindings.

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