feat: add PHP 5.6 compatibility

This commit is contained in:
Ivan Sadovin 2026-05-06 16:08:34 +03:00
parent 420e79b9d6
commit 7a17770f79
3 changed files with 399 additions and 332 deletions

View File

@ -1,6 +1,5 @@
# 🌟 Платёжный модуль PayAnyWay для WHMCS
![WHMCS](https://img.shields.io/badge/WHMCS-Gateway%20Module-0070C0?logo=php&logoColor=white)
![PHP](https://img.shields.io/badge/PHP-5.6%2B-purple)
![License](https://img.shields.io/badge/License-MIT-green)
@ -12,32 +11,33 @@ WHMCS предоставляет мощный функционал, которы
> Данный модуль работает **только с валютой RUB (Российский рубль)**.
> Перед активацией модуля убедитесь, что в WHMCS в качестве базовой валюты установлен RUB, либо у пользователя выбран счёт в RUB. Использование других валют не поддерживается.
> **📦 Версия модуля: 1.1.0**
> **📦 Версия модуля: 1.0.0**
## 🏗️ Структура модуля
```
└── modules
└── gateways
├── callback
│ └── payanyway.php
└── payanyway.php
├── modules
│ └── gateways
│ ├── callback
│ │ └── payanyway.php
│ └── payanyway.php
└── README.md
```
## 🚀 Установка и настройка модуля
1. 📥 [Скачайте архив модуля](https://www.payanyway.ru/info/public/cms/whmcs.zip) и распакуйте его.
1. 📥 [Скачайте архив модуля](https://git.pub.moneta.ru/CMS/WHMCS/releases) и распакуйте его.
2. 📂 Скопируйте содержимое архива в корень сайта.
3. ⚙️ В списке модулей оплаты WHMCS найдите **PayAnyWay** и активируйте его.
4. ✏️ Заполните соответствующие поля в настройках способа оплаты:
| Поле | Значение |
|------|----------|
| **Show on Order Form** | ✅ Поставить галочку |
| **Display Name** | `PayAnyWay` |
| **Account Number** | Номер расширенного счета в PayAnyWay (Moneta) |
| Поле | Значение |
|-----------------------------------------|----------------------------------------------------------------|
| **Show on Order Form** | ✅ Поставить галочку |
| **Display Name** | `PayAnyWay` |
| **Account Number** | Номер расширенного счета в PayAnyWay (Moneta) |
| **Code of data integrity verification** | Код проверки целостности данных из настроек расширенного счета |
| **Test Mode** | ❌ Галочку **не** ставить |
| **Test Mode** | ❌ Галочку **не** ставить |
---
@ -47,20 +47,20 @@ WHMCS предоставляет мощный функционал, которы
2. ⚙️ Заполните настройки расширенного счета (раздел **«Мой счет» → «Управление счетами» → «Редактировать счет»**):
| Параметр | Значение |
|----------|----------|
| **Тестовый режим** | `Нет` |
| **Check URL** | `https://your_site_name/modules/gateways/callback/payanyway.php` |
| **Pay URL** | `https://your_site_name/modules/gateways/callback/payanyway.php` |
| **HTTP method** | `GET` / `POST` |
| **Проверить Check/Pay URL** | `Нет` |
| **Можно переопределять настройки в URL** | `Да` |
| **Подпись формы оплаты обязательна** | `Да` |
| **Код проверки целостности данных** | аш_код` (произвольный набор символов) |
| **Success URL** | Оставить пустым |
| **Fail URL** | Оставить пустым |
| **InProgress URL** | Оставить пустым |
| **Return URL** | Оставить пустым |
| Параметр | Значение |
|------------------------------------------|------------------------------------------------------------------|
| **Тестовый режим** | `Нет` |
| **Check URL** | `https://your_site_name/modules/gateways/callback/payanyway.php` |
| **Pay URL** | `https://your_site_name/modules/gateways/callback/payanyway.php` |
| **HTTP method** | `GET` / `POST` |
| **Проверить Check/Pay URL** | `Нет` |
| **Можно переопределять настройки в URL** | `Да` |
| **Подпись формы оплаты обязательна** | `Да` |
| **Код проверки целостности данных** | аш_код` (произвольный набор символов) |
| **Success URL** | Оставить пустым |
| **Fail URL** | Оставить пустым |
| **InProgress URL** | Оставить пустым |
| **Return URL** | Оставить пустым |
> ⚠️ **Важно!** Для кириллического домена PayURL и CheckURL должны быть указаны в кодировке [Punycode](https://2ip.ru/punycode/).

View File

@ -16,26 +16,20 @@ require_once __DIR__ . '/../../../includes/invoicefunctions.php';
require_once __DIR__ . '/../payanyway.php';
$requestData = ($_SERVER['REQUEST_METHOD'] === 'POST') ? $_POST : $_GET;
$gatewayModuleName = 'payanyway';
try {
$gatewayModuleName = 'payanyway';
$gatewayParams = getGatewayVariables($gatewayModuleName);
if (!$gatewayParams['type']) {
payanyway_sendResponse('FAIL', 500); // Module Not Activated
if (!$gatewayParams || !isset($gatewayParams['type'])) {
payanyway_sendResponse('FAIL');
}
$gatewayName = payanyway_getWhmcsVariableOrFail($gatewayParams, 'name');
$integrityCode = payanyway_getPayAnyWayIntegrityCodeOrFail($gatewayParams);
$callbackData = payanyway_getCallbackData($requestData);
('CHECK' === $callbackData['MNT_COMMAND'])
? payanyway_handleCheckCallback($callbackData, $gatewayName, $integrityCode)
: payanyway_handlePayCallback($callbackData, $gatewayName, $integrityCode, $gatewayModuleName);
} catch (\PayAnyWayException $e) {
logTransaction($gatewayModuleName, $requestData, 'Error: ' . $e->getMessage());
payanyway_sendResponse('FAIL', 500);
(isset($callbackData['MNT_COMMAND'])) && ('CHECK' === $callbackData['MNT_COMMAND'])
? payanyway_handleCheckCallback($callbackData, $gatewayParams)
: payanyway_handlePayCallback($callbackData, $gatewayParams, $gatewayModuleName);
} catch (\Exception $e) {
logTransaction($gatewayModuleName, $requestData, 'Error: ' . $e->getMessage());
payanyway_sendResponse('FAIL', 500);
}
payanyway_sendResponse('FAIL');
}

File diff suppressed because it is too large Load Diff