Files
hutko/README.md
2026-03-09 14:21:43 +02:00

7.8 KiB
Raw Blame History

Платіжний модуль Hutko для miniShop2 (MODX Revolution)

Модуль інтеграції платіжної системи Hutko для інтернет-магазинів на базі MODX Revolution та компонента miniShop2.

Особливості

  • Автоматична генерація посилання на оплату.
  • Автоматична зміна статусу замовлення при успішній оплаті (через Callback).
  • Передача даних про кошик (товари, кількість, ціни, вартість доставки).
  • Передача даних клієнта для фіскалізації/резервації.
  • Підтримка кількох конфігурацій (мерчантів) на одному сайті.

1. Встановлення файлів

Скопіюйте файли з репозиторію у корінь вашого сайту, зберігаючи структуру директорій:

  1. hutko.php -> assets/components/minishop2/payment/hutko.php
  2. hutko.class.php -> core/components/minishop2/custom/payment/hutko.class.php

2. Додавання методу оплати в miniShop2

  1. В адмін-панелі MODX перейдіть до Магазин (miniShop2) -> Налаштування -> вкладка Оплата.
  2. Натисніть Створити (або "Додати").
  3. Заповніть поля:
    • Назва: Hutko (або "Оплата карткою", "Оплата онлайн" тощо)
    • Клас обробника: Hutko
    • Активний: Так
  4. Збережіть метод оплати.
  5. Важливо: Зверніть увагу на ID щойно створеного методу оплати (наприклад, 2, 3 або 4). Цей ID знадобиться для налаштування конфігурації.

3. Налаштування конфігурації (JSON)

Платіжний модуль використовує системні налаштування MODX для зберігання конфігурації у форматі JSON. Це дозволяє гнучко налаштовувати модуль без редагування коду.

Створення системного налаштування:

  1. Перейдіть до Системні налаштування (System -> System Settings).
  2. Натисніть Створити нове налаштування.
  3. Заповніть поля:
    • Ключ: ms2_hutko_payment_ID_config (де ID — це ідентифікатор вашого методу оплати з кроку 2. Наприклад, якщо ID методу оплати = 3, ключ має бути ms2_hutko_payment_3_config).
    • Тип запису: Текстова область (textarea)
    • Простір імен: minishop2 (або core)
    • Значення: Вставте JSON-код (див. приклад нижче).

Приклад конфігурації (JSON):

{
  "merchant_id": "ВАШ_MERCHANT_ID",
  "secret_key": "ВАШ_SECRET_KEY",
  "currency": "UAH",
  "paid_status_id": 2,
  "payment_with_delivery": true,
  "delivery_code": "Shipping_001",
  "delivery_name": "Доставка",
  "order_description": "Оплата замовлення #"
}

Опис параметрів конфігурації:

Параметр Опис Значення за замовчуванням
merchant_id ID вашого мерчанта в системі Hutko. "" (обов'язково вказати)
secret_key Секретний ключ для підпису запитів. "" (обов'язково вказати)
currency Валюта платежу. "UAH"
paid_status_id ID статусу замовлення в ms2, який буде встановлено після успішної оплати. 2 (Зазвичай 2 = "Оплачено")
payment_with_delivery Чи включати вартість доставки у загальну суму оплати (true/false). true
delivery_code Артикул/код послуги доставки для чека. "Shipping_001"
delivery_name Назва послуги доставки для чека. "Shipping"
order_description Префікс призначення платежу (до нього автоматично додасться номер замовлення). "Оплата замовлення #"
success_url URL, куди повернеться клієнт після оплати. Головна сторінка сайту

(Будь-який параметр можна пропустити в JSON, тоді модуль використає значення за замовчуванням).


4. Використання кількох конфігурацій (Мультиакаунтність)

Модуль спроєктовано так, що ви можете підключити декілька різних акаунтів Hutko на одному сайті (наприклад, для прийому оплат у різних валютах, на різні ФОП/Компанії, або для різних способів доставки).

Як це зробити:

  1. Створіть перший метод оплати в miniShop2 (наприклад, ID 3 — "Оплата від ФОП 1").
  2. Створіть другий метод оплати в miniShop2 (наприклад, ID 4 — "Оплата від ТОВ 2").
  3. Створіть два різних системних налаштування:
    • Ключ: ms2_hutko_payment_3_config (зі своїм merchant_id та secret_key для ФОП 1).
    • Ключ: ms2_hutko_payment_4_config (з іншими merchant_id та secret_key для ТОВ 2).

Коли покупець обирає певний метод оплати, модуль автоматично підтягує відповідний JSON конфіг на основі ID обраного методу.


5. Тестовий режим (Sandbox)

Для тестування оплат без використання реальних коштів, використовуйте тестові дані Hutko:

  1. У системному налаштуванні ms2_hutko_payment_ID_config замініть дані на:
{
  "merchant_id": "1700002",
  "secret_key": "test"
}
  1. Зробіть тестове замовлення.
  2. Після завершення тестування не забудьте змінити ці дані на ваші робочі (бойові) ключі!

6. Callback (Webhooks)

Скрипт assets/components/minishop2/payment/hutko.php слугує Endpoint'ом для прийому сповіщень (вебхуків) від сервера Hutko про зміну статусу платежу.

Модуль автоматично формує та передає цей URL в Hutko під час створення платежу (параметр server_callback_url). Вам не потрібно прописувати його вручну в кабінеті Hutko, все відбувається автоматично.

При успішній оплаті модуль:

  1. Перевіряє валідність цифрового підпису (signature).
  2. Перевіряє, чи сума платежу збігається з сумою замовлення.
  3. Змінює статус замовлення в MODX на вказаний у paid_status_id.