feat: add fiscalization settings, POST callbacks and fix callback issues
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||

|
||||

|
||||
|
||||
> **📦 Версия модуля: 1.0.3**
|
||||
> **📦 Версия модуля: 1.0.4**
|
||||
|
||||
> **ℹ️ Совместимость версий OpenCart:**
|
||||
> 3.0.0.0, 3.0.1.1, 3.0.1.2, 3.0.2.0, 3.0.3.0, 3.0.3.1, 3.0.3.2, 3.0.3.3, 3.0.3.4, 3.0.3.5, 3.0.3.6, 3.0.3.7, 3.0.3.8, 3.0.3.9, 3.0.4.0, 3.0.4.1, 3.0.5.0
|
||||
@@ -29,11 +29,11 @@
|
||||
│ │ ├── view/image/payment/payanyway.png
|
||||
│ │ └── view/template/extension/payment/payanyway.twig
|
||||
│ └── catalog
|
||||
│ ├── controller/extension/payment/payanyway.php
|
||||
│ ├── controller/extension/payment/payanyway.php — форма оплаты, Check URL и Pay URL
|
||||
│ ├── language/{en-gb,ru-ru}/extension/payment/payanyway.php
|
||||
│ ├── model/extension/payment/payanyway.php
|
||||
│ └── view/theme/default/template/extension/payment/payanyway.twig
|
||||
├── install.xml
|
||||
├── install.xml — OCMOD: приём Check/Pay URL методом POST (правка роутера витрины)
|
||||
└── README.md
|
||||
```
|
||||
|
||||
@@ -48,20 +48,31 @@
|
||||
- **«Редактировать»** — для перехода к настройкам
|
||||
4. ✏️ Заполните соответствующие поля в настройках способа оплаты:
|
||||
|
||||
| Поле | Описание |
|
||||
|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **Включить модуль оплаты** | Включите или выключите модуль оплаты |
|
||||
| **Номер счёта** | Ван номер расширенного счёта в системе [MONETA.RU](https://moneta.ru/) |
|
||||
| **Код проверки целостности данных** | Код проверки целостности данных, указанный в настройках расширенного счёта в системе [MONETA.RU](https://moneta.ru/) |
|
||||
| **Сервер платежей** | `Боевой` / `Тестовый` |
|
||||
| **НДС** | Выберите из списка |
|
||||
| **Валюта платежа** | `RUB` |
|
||||
| **Статусы заказа** | Выберите соответствующие статусы заказа из списка |
|
||||
| **Обрабатываемый** | Укажите статус заказа, который выставляется при его создании |
|
||||
| **Успешный** | Укажите статус заказа, который выставляется при успешной оплате |
|
||||
| **Неуспешный** | Укажите статус заказа, который выставляется при ошибке оплаты |
|
||||
| **Регион отображения** | Географическая зона, в которой будет отображаться способ оплаты |
|
||||
| **Порядок сортировки** | Определяет порядок отображения платежного метода в списке методов оплаты при оформлении заказа. Чем меньше число, тем выше позиция в списке |
|
||||
| Поле | Описание |
|
||||
|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **Включить модуль оплаты** | Включите или выключите модуль оплаты |
|
||||
| **Номер счёта** | Ваш номер расширенного счёта в системе [MONETA.RU](https://moneta.ru/), только цифры |
|
||||
| **Код проверки целостности данных** | Код проверки целостности данных, указанный в настройках расширенного счёта в системе [MONETA.RU](https://moneta.ru/). Сохраняется ровно так, как введён, в том числе с символами `&`, `"`, `<`, `>` |
|
||||
| **Сервер платежей** | `Боевой` / `Демо` (демо-площадка MONETA.RU) |
|
||||
| **Тестовый режим** | Имитация оплаты без реального списания средств. Должен совпадать с настройкой счёта в MONETA.RU: уведомление в другом режиме модуль отклоняет |
|
||||
| **Фискализация чеков** | Включайте, только если к счёту подключён кассовый сервис [kassa.payanyway.ru](https://kassa.payanyway.ru/). Включена — на проверочный запрос модуль отвечает чеком для кассы (без кассы MONETA.RU вернёт ошибку `-700`). Выключена — в операцию уходят только позиции заказа и контакты покупателя. По умолчанию включена |
|
||||
| **Email для чеков** | Обязателен при фискализации. Подставляется в чек, только если у покупателя нет ни e-mail, ни телефона (ФИО покупателя в чеке остаётся) |
|
||||
| **НДС** | Ставка НДС всех позиций чека |
|
||||
| **Признак способа расчёта** | Для товаров, доставки и сборов. Обычно `Полный расчёт`. Проданные подарочные сертификаты всегда идут авансом |
|
||||
| **Признак предмета расчёта** | Для товаров. Доставка и сборы всегда идут услугой, подарочные сертификаты — платежом |
|
||||
| **Валюта платежа** | `RUB` |
|
||||
| **Статусы заказа** | Выберите соответствующие статусы заказа из списка |
|
||||
| **Обрабатываемый** | Укажите статус заказа, который выставляется при его создании |
|
||||
| **Успешный** | Укажите статус заказа, который выставляется при успешной оплате |
|
||||
| **Неуспешный** | Укажите статус заказа, который выставляется при ошибке оплаты |
|
||||
| **Отменённые** | Заказ в этих статусах не оплачивается: на проверочный запрос модуль отвечает отказом. По умолчанию `Canceled`, `Canceled Reversal`, `Voided` |
|
||||
| **URL для уведомлений** | Адрес Check URL и Pay URL для настроек счёта MONETA.RU, кнопка «Скопировать» |
|
||||
| **Регион отображения** | Географическая зона, в которой будет отображаться способ оплаты |
|
||||
| **Порядок сортировки** | Определяет порядок отображения платежного метода в списке методов оплаты при оформлении заказа. Чем меньше число, тем выше позиция в списке |
|
||||
|
||||
Сумма позиций чека всегда равна сумме оплаты: налоги OpenCart входят в цену товаров, скидки (купоны, подарочные сертификаты, бонусные баллы) распределяются по товарам, доставка и сборы идут отдельными позициями. В истории заказа при оплате сохраняется номер операции MONETA.RU: «Заказ оплачен. Номер операции: N».
|
||||
|
||||
> ⚠️ **После обновления модуля** нажмите **«Модули / Расширения» → «Модификации» → «Обновить»**, затем откройте настройки PayAnyWay, проверьте новые поля (фискализация после обновления включена) и нажмите **«Сохранить»**. Пока при включённой фискализации не задан «Email для чеков», над формой настроек показывается предупреждение.
|
||||
|
||||
---
|
||||
|
||||
@@ -76,7 +87,7 @@
|
||||
| **Тестовый режим** | `Нет` |
|
||||
| **Check URL** | `https://your_site_name/index.php?route=extension/payment/payanyway/callback` |
|
||||
| **Pay URL** | `https://your_site_name/index.php?route=extension/payment/payanyway/callback` |
|
||||
| **HTTP method** | `GET` |
|
||||
| **HTTP method<sup>\*</sup>** | `GET` или `POST` (требуется настройка) |
|
||||
| **Можно переопределять настройки в URL** | `Да` |
|
||||
| **Подпись формы оплаты обязательна** | `Да` |
|
||||
| **Код проверки целостности данных** | `ваш_код` (произвольный набор символов) |
|
||||
@@ -87,6 +98,18 @@
|
||||
|
||||
> ⚠️ **Важно!** Для кириллического домена PayURL и CheckURL должны быть указаны в кодировке [Punycode](https://2ip.ru/punycode/).
|
||||
|
||||
### <sup>\*</sup> 📨 Уведомления методом POST
|
||||
|
||||
При **HTTP method** = `POST` MONETA.RU переносит параметры из адреса Check URL / Pay URL в тело запроса, в том числе `route=extension/payment/payanyway/callback`. Штатный OpenCart 3 ищет маршрут только в адресе и без доработки отвечает главной страницей, а платёжная форма показывает «Код ошибки: 302».
|
||||
|
||||
Модуль решает это модификацией OCMOD из `install.xml`: маршрут колбэка (и только его) берётся из тела запроса. Чтобы модификация заработала:
|
||||
|
||||
1. Устанавливайте модуль только через **«Модули / Расширения» → «Установка расширений»** (архив `payanyway.ocmod.zip`). При заливке файлов по FTP модификация не регистрируется.
|
||||
2. После установки или обновления модуля откройте **«Модули / Расширения» → «Модификации»** (Extensions → Modifications) и нажмите синюю кнопку **«Обновить»** вверху справа. Повторяйте это после включения, выключения или удаления любой модификации и после кнопки «Очистить».
|
||||
3. Откройте настройки PayAnyWay. Если модификация не применена, над формой будет жёлтое предупреждение. Причину смотрите на вкладке «Лог» в «Модификациях»: строка `NOT FOUND` у файла `catalog/controller/startup/router.php` означает, что роутер уже изменён другой модификацией.
|
||||
|
||||
Если модификацию применить не удаётся, выберите в настройках счёта **HTTP method** = `GET`: при GET модификация не нужна.
|
||||
|
||||
---
|
||||
|
||||
## 📚 Полезные ресурсы OpenCart
|
||||
|
||||
Reference in New Issue
Block a user