# 🌟 Платёжный модуль Moneta для [Moodle](https://moodle.org/) ![Moodle](https://img.shields.io/badge/Moodle-4.3%2B-orange?logo=moodle&logoColor=white) ![PHP](https://img.shields.io/badge/PHP-8.1%2B-purple) ![License](https://img.shields.io/badge/License-GPLv3%2B-blue) > **© Правообладатель:** НКО «МОНЕТА» (ООО) > **📦 Версия модуля: 1.0.0** > **ℹ️ Требования:** > PHP 8.1+ > Payment API Moodle 4.3+ > **ℹ️ Примечание по валюте:** > Данный модуль работает **только с валютой RUB (Российский рубль)**. Использование других валют не поддерживается. > Стоимость курса в `enrol_fee` должна быть задана в рублях, иначе платежный модуль **"Moneta"** не будет предложен. ## 🚀 Установка и настройка модуля ### 1. 📥 Скачайте модуль [Архив последнего релиза](https://git.pub.moneta.ru/CMS/Moodle/releases/latest) — файл `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](https://demo.moneta.ru/) и оплатите курс от имени студента. Заказы и причины отказов видны в **Администрирование → Платежи → Заказы Монета**. Покупатель получает сообщения «Ссылка на оплату» и «Оплата принята» по своим настройкам уведомлений (веб-уведомление и/или письмо, если на сайте настроена исходящая почта). ### Обновление Скачайте новый архив и установите его так же, как в шаге 2 (Moodle предложит заменить текущую версию), либо замените папку `payment/gateway/moneta` вручную и откройте **Администрирование → Уведомления**. Настройки счетов и заказы сохраняются. ### Реквизиты шлюза в платёжном аккаунте | Поле | Значение | |---------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Номер счёта** | Обязательно. Ваш номер расширенного счёта в системе [MONETA.RU](https://moneta.ru/) | | **Код проверки целостности данных** | Обязательно. Код проверки целостности данных, указанный в настройках расширенного счёта в системе [MONETA.RU](https://moneta.ru/) | | **Сервер платежей** | `Боевой` (по умолчанию) / `Демо` (demo.moneta.ru, отдельный номер счёта) | | **Тестовый режим** | Должен совпадать с флагом «Тестовый режим» в настройках счёта | | **Email для чеков** | Обязательно. Подставляется в чек, если у покупателя нет ни email, ни телефона — чек придёт на этот адрес, а ФИО покупателя в чеке сохранится | | **Фискализация чеков** | Фискализация чеков по 54-ФЗ средствами системы [MONETA.RU](https://moneta.ru/) сервисом [kassa.payanyway.ru](https://kassa.payanyway.ru/) | | **Ставка НДС** | Ставка для позиции «доступ к курсу» в чеке | | **Отправлять ссылку оплаты на почту** | При создании заказа покупателю приходит сообщение со ссылкой на оплату — можно оплатить позже (по умолчанию включено) | | **URL для уведомлений** | `https://<сайт>/payment/gateway/moneta/callback.php` — его нужно указать в настройках расширенного счёта `Check URL` / `Pay URL` в системе [MONETA.RU](https://moneta.ru/) | ## 🔧 Настройка счёта в личном кабинете [MONETA.RU](https://moneta.ru/) 1. 📝 [Зарегистрируйтесь](https://moneta.ru/partnerRegistration.htm) в платёжной системе 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](https://2ip.ru/punycode/). 3. Для фискализации чеков по 54-ФЗ средствами за рамками **Moodle**, настройте вашу кассу в сервисе [kassa.payanyway.ru](https://kassa.payanyway.ru), в настройках Вашего расширенного счёта в системе [MONETA.RU](https://moneta.ru/) установите Pay URL: https://kassa.payanyway.ru/index.php?do=invoicepayurl, а в настройках кассы в сервисе [kassa.payanyway.ru](https://kassa.payanyway.ru) пропишите ссылку на Pay URL Вашего интернет-магазина. В этом случае будет пробиваться чек по 54-ФЗ через сервис [kassa.payanyway.ru]([kassa.payanyway.ru](https://kassa.payanyway.ru)), а запрос на Pay URL магазина будет проходить транзитом через сервис [kassa.payanyway.ru](https://kassa.payanyway.ru). --- ## 📚 Полезные ресурсы - [Документация Moodle](https://docs.moodle.org/) - [Документация Moneta](https://docs.moneta.ru/) --- **✅ Модуль настроен, приятных платежей!** 💰🎉