ivan.sadovin febe3ad9c5 Merge branch 'main' into 'release'
feat: paygw_moneta 1.0.0, MONETA.Assistant payment gateway for Moodle

See merge request products/cashier/cms/Moodle!1
2026-09-25 16:57:00 +03:00

🌟 Платёжный модуль Moneta для Moodle

Moodle PHP License

© Правообладатель: НКО «МОНЕТА» (ООО)

📦 Версия модуля: 1.0.0

ℹ️ Требования: PHP 8.1+ Payment API Moodle 4.3+

ℹ️ Примечание по валюте: Данный модуль работает только с валютой RUB (Российский рубль). Использование других валют не поддерживается.

Стоимость курса в enrol_fee должна быть задана в рублях, иначе платежный модуль "Moneta" не будет предложен.

🚀 Установка и настройка модуля

1. 📥 Скачайте модуль

Архив последнего релиза — файл paygw_moneta-<версия>.zip в разделе «Файлы» релиза. Внутри архива — папка moneta, распаковывать его не нужно.

⚠️ Не берите «Исходный код (ZIP)» / «Исходный код (TAR.GZ)» — их сервис добавляет к каждому релизу автоматически, и корневая папка в них названа не moneta. Если такой архив всё же скачан, при установке (шаг 2) нажмите «Показать больше…» и в поле «Переименовать корневой каталог» укажите moneta.

2. 📂 Установите плагин

Через интерфейс Moodle (нужны права администратора сайта):

  1. Администрирование → Плагины → Установка плагинов.

  2. Добавьте архив в поле «ZIP-пакет» одним из способов:

    • перетащите файл в поле;
    • или нажмите «Выберите файл...», в открывшемся окне выберите «Загрузить файл», укажите архив на компьютере и нажмите «Загрузить этот файл».

    Затем нажмите «Установить плагин из ZIP-файла». Moodle сам определит тип плагина (платёжный шлюз) и папку назначения.

  3. Нажмите «Продолжить» на странице проверки, затем «Обновить Moodle» — создастся таблица заказов и шлюз Moneta включится автоматически.

Вручную (если установка из ZIP отключена на сервере): распакуйте архив так, чтобы получилась папка payment/gateway/moneta в корне Moodle (в Moodle 5.1 и новее — public/payment/gateway/moneta), и откройте Администрирование → Уведомления, чтобы завершить установку.

3. ✅ Проверьте, что включено нужное

  1. Администрирование → Плагины → Платежные шлюзы → Управление платежными шлюзами — у Moneta включён значок видимости.
  2. Администрирование → Плагины → Способы зачисления → Управление способами зачисления — включён способ «Зачисление за оплату» (штатный плагин Moodle enrol_fee, через него курсы продаются).

4. 💳 Создайте платёжный счёт Moodle и подключите к нему Moneta

  1. Администрирование → Платежи → Платежные счета → Создать платежный счет — придумайте название (например, номер вашего счёта MONETA.RU) и сохраните.
  2. В строке счёта, в списке его шлюзов, нажмите Монета, включите шлюз и заполните реквизиты по таблице ниже.
  3. Скопируйте URL для уведомлений кнопкой «Скопировать в буфер обмена» — он понадобится в личном кабинете MONETA.RU.

5. 🎓 Назначьте цену курсу

В курсе: Участники → Способы зачисления на курс → Добавить способ → Зачисление за оплату. Укажите Платежный счет (созданный на шаге 4), Оплата за зачисление (цену) и валюту RUB, сохраните.

Название способа заполнять не обязательно. Если его задать, в Moodle 5.x оно заменит заголовок «Для зачисления на этот курс требуется оплата» на странице записи на курс; в списке способов зачисления его видят преподаватели. На оплату не влияет: в чеке и на странице перехода к оплате всегда полное название курса.

Студент увидит на странице курса кнопку оплаты, выберет Moneta, проверит курс и сумму на странице перехода к оплате и нажмёт «Оплатить». После подтверждения оплаты от MONETA.RU доступ к курсу открывается автоматически.

6. 🧪 Проверьте оплату

Для проверки без реальных денег используйте Сервер платежей: Демо со счётом на demo.moneta.ru и оплатите курс от имени студента. Заказы и причины отказов видны в Администрирование → Платежи → Заказы Монета. Покупатель получает сообщения «Ссылка на оплату» и «Оплата принята» по своим настройкам уведомлений (веб-уведомление и/или письмо, если на сайте настроена исходящая почта).

Обновление

Скачайте новый архив и установите его так же, как в шаге 2 (Moodle предложит заменить текущую версию), либо замените папку payment/gateway/moneta вручную и откройте Администрирование → Уведомления. Настройки счетов и заказы сохраняются.

Реквизиты шлюза в платёжном аккаунте

Поле Значение
Номер счёта Обязательно. Ваш номер расширенного счёта в системе MONETA.RU
Код проверки целостности данных Обязательно. Код проверки целостности данных, указанный в настройках расширенного счёта в системе MONETA.RU
Сервер платежей Боевой (по умолчанию) / Демо (demo.moneta.ru, отдельный номер счёта)
Тестовый режим Должен совпадать с флагом «Тестовый режим» в настройках счёта
Email для чеков Обязательно. Подставляется в чек, если у покупателя нет ни email, ни телефона — чек придёт на этот адрес, а ФИО покупателя в чеке сохранится
Фискализация чеков Фискализация чеков по 54-ФЗ средствами системы MONETA.RU сервисом kassa.payanyway.ru
Ставка НДС Ставка для позиции «доступ к курсу» в чеке
Отправлять ссылку оплаты на почту При создании заказа покупателю приходит сообщение со ссылкой на оплату — можно оплатить позже (по умолчанию включено)
URL для уведомлений https://<сайт>/payment/gateway/moneta/callback.php — его нужно указать в настройках расширенного счёта Check URL / Pay URL в системе MONETA.RU

🔧 Настройка счёта в личном кабинете MONETA.RU

  1. 📝 Зарегистрируйтесь в платёжной системе MONETA.RU и заполните все необходимые данные. Дождитесь проверки аккаунта и создайте расширенный счет.
  2. ⚙️ Заполните настройки расширенного счета (раздел «Мой счет» → «Управление счетами» → «Редактировать счет» → «Показать дополнительные поля»):
Параметр Значение
Псевдоним Монета
Тестовый режим Нет
Check URL https://<сайт>/payment/gateway/moneta/callback.php
Pay URL https://<сайт>/payment/gateway/moneta/callback.php
HTTP метод (PayUrl, CheckUrl) GET / POST
Код проверки целостности данных ваш_код (произвольный набор символов)
Подпись формы оплаты обязательна Да
Можно переопределять настройки в url Да
Success URL Оставить пустым
Fail URL Оставить пустым
InProgress URL Оставить пустым
Return URL Оставить пустым
Target (возврат для iframe) Оставить пустым

⚠️ Важно! Для кириллического домена PayURL и CheckURL должны быть указаны в кодировке Punycode.

  1. Для фискализации чеков по 54-ФЗ средствами за рамками Moodle, настройте вашу кассу в сервисе kassa.payanyway.ru, в настройках Вашего расширенного счёта в системе MONETA.RU установите Pay URL: https://kassa.payanyway.ru/index.php?do=invoicepayurl, а в настройках кассы в сервисе kassa.payanyway.ru пропишите ссылку на Pay URL Вашего интернет-магазина. В этом случае будет пробиваться чек по 54-ФЗ через сервис kassa.payanyway.ru, а запрос на Pay URL магазина будет проходить транзитом через сервис kassa.payanyway.ru.

📚 Полезные ресурсы


✅ Модуль настроен, приятных платежей! 💰🎉

S
Description
No description provided
Readme GPL-3.0
128 KiB
v1.0.0
Latest
2026-09-25 17:15:07 +03:00
Languages
PHP 95.1%
Mustache 2.4%
JavaScript 1.4%
CSS 1.1%