155 lines
14 KiB
Markdown
155 lines
14 KiB
Markdown
# 🌟 Платёжный модуль Moneta для [Moodle](https://moodle.org/)
|
||
|
||

|
||

|
||

|
||
|
||
> **© Правообладатель:** НКО «МОНЕТА» (ООО)
|
||
|
||
> **📦 Версия модуля: 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/)
|
||
|
||
---
|
||
|
||
**✅ Модуль настроен, приятных платежей!** 💰🎉 |