Інтеграція Fondy: підключення, вебхуки, рекурентні та спліт-платежі

Інтеграція Fondy: підключення, вебхуки, рекурентні та спліт-платежі

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Інтеграція Fondy: підключення, вебхуки, рекурентні та спліт-платежі
Середній
від 1 дня до 3 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

Інтеграція Fondy: підключення, вебхуки, рекурентні та спліт-платежі

Приймаєте платежі в Україні? Ми часто стикаємося із запитами на інтеграцію Fondy — популярного платіжного шлюзу з ліцензією ЄС. Fondy підтримує картки Visa, Mastercard, Google Pay, Apple Pay, локальні методи (Приват24, MONO, Укрбанк). Документація російською та англійською, REST API стабільний. Одна з частих помилок — неправильна генерація підпису, що призводить до відхилення транзакцій. Або пропущений callback через неправильне налаштування webhook. У цій статті розберемо ключові сценарії: підпис запитів, вебхуки, уникнення дублів замовлень, і покажемо робочі рішення на PHP. На основі нашого досвіду понад 50 інтеграцій ми підготували типові рішення, які скорочують час впровадження до 3 разів порівняно з самостійною розробкою.

Які проблеми вирішує інтеграція Fondy?

  • Підпис запитів: неправильний порядок параметрів або відсутність ksort ламає перевірку підпису.
  • Обробка вебхуків: вразливість підробки callback'ів при слабкій перевірці підпису.
  • Дублі замовлень: повторний order_id відхиляє транзакцію; потрібен механізм унікальності.
  • Повернення: часткові повернення вимагають коректного розрахунку суми в копійках.
  • Рекурентні платежі: для підписок потрібно зберігати token картки.

Як вибрати метод інтеграції Fondy?

Вибір залежить від вимог до UX та часу впровадження. Hosted Page — найшвидший спосіб: перенаправлення на платіжну сторінку Fondy. Checkout JS — вбудована форма на вашому сайті, що залишає повний контроль UI. API direct — максимальна гнучкість, але потребує більше часу на реалізацію.

Метод Складність Зовнішній вигляд Контроль UI Час впровадження
Hosted Page Низька Сторінка Fondy Мінімальний 2-3 дні
Checkout JS Середня Ваш сайт Повний 5-7 днів
API direct Висока Ваш сайт Повний 7-14 днів

Hosted Page — оптимальний старт, Checkout JS — для максимального UX.

Як ми інтегруємо Fondy: кейс Hosted Page

Найшвидший спосіб — перенаправлення на платіжну сторінку Fondy. Hosted Page впроваджується за 2-3 дні, що в 3-5 разів швидше, ніж API direct. Наші інженери реалізували це для інтернет-магазину з 5000 замовлень на місяць. Ось ключовий блок:

function buildFondyPayment(int $orderId, int $amountInKopecks, string $currency = 'UAH'): array { $merchantId = env('FONDY_MERCHANT_ID'); $secretKey = env('FONDY_SECRET_KEY'); $params = [ 'merchant_id' => $merchantId, 'order_id' => $orderId . '_' . time(), 'order_desc' => "Заказ #{$orderId}", 'amount' => $amountInKopecks, 'currency' => $currency, 'response_url' => 'URL повернення', 'server_callback_url' => 'URL вебхука', 'lang' => 'ru', ]; ksort($params); $signString = $secretKey . '|' . implode('|', array_values($params)); $params['signature'] = sha1($signString); return $params; } 

Далі відправляємо POST на https://pay.fondy.eu/api/checkout/url/ і отримуємо checkout_url для редиректу. Альтернатива — HTML-форма з POST на https://pay.fondy.eu/api/checkout/redirect/.

Як обробити вебхук і не помилитися з підписом?

Критично важливий момент — перевірка підпису в callback. Нижче приклад надійного обробника:

public function handleCallback(Request $request): Response { $data = $request->all(); $received = $data['signature']; unset($data['signature']); $data = array_filter($data, fn($v) => $v !== '' && $v !== null); ksort($data); $expected = sha1(env('FONDY_SECRET_KEY') . '|' . implode('|', array_values($data))); if (!hash_equals($expected, $received)) { return response('Bad signature', 403); } if ($data['order_status'] === 'approved') { $orderId = (int) explode('_', $data['order_id'])[0]; Order::where('id', $orderId)->update([ 'status' => 'paid', 'transaction_id' => $data['payment_id'], ]); } return response()->json(['response' => 'accept']); } 

Статуси: approved, declined, expired, processing, reversed. Ніколи не довіряйте неверифікованим callback'ам.

Чому важливий ksort перед підписом?

Fondy використовує строгий порядок параметрів для генерації підпису. Якщо не відсортувати масив за ключами через ksort, підпис буде неправильним. Навіть зайвий пробіл або порядок, що відрізняється від документації, призведе до помилки. Завжди виконуйте ksort після збирання параметрів і перед конкатенацією.

Вбудована форма Checkout JS

Якщо не хочете відводити користувача зі сторінки, використовуйте Checkout JS. Скрипт підвантажується з серверів Fondy, а signature генерується на сервері:

<script src="https://pay.fondy.eu/static_common/v1/checkout/ipsp.js"></script> 
$ipsp.get('checkout').config({ merchantId: FONDY_MERCHANT_ID, amount: 1500, currency: 'UAH', orderId: 'order-12345', orderDesc: 'Тестовый заказ', signature: serverGeneratedSignature, lang: 'ru', fields: false, fee: false, theme: { preset: 'silver', }, }); 

Важливо: ніколи не передавайте secret_key на клієнт — signature створюється тільки на сервері.

Повернення та часткові повернення

Для скасування транзакції використовуйте API:

$params = [ 'merchant_id' => env('FONDY_MERCHANT_ID'), 'order_id' => $originalOrderId, 'amount' => 75000, // частковий возврат 'currency' => 'UAH', 'comment' => 'Customer request', ]; ksort($params); $params['signature'] = sha1(env('FONDY_SECRET_KEY') . '|' . implode('|', array_values($params))); Http::post('https://pay.fondy.eu/api/reverse/order/', ['request' => $params]); 

Зверніть увагу: сума в копійках, currency обов'язковий.

Процес та терміни інтеграції

Етап Тривалість Результат
Аналітика 1-2 дні Схема процесу оплати, вибір методу
Проектування 1-2 дні Архітектура вебхуків, обробка помилок
Реалізація 2-5 днів Код, інтеграція в CMS/фреймворк
Тестування 1-2 дні Транзакції, edge cases
Деплой та моніторинг 1 день Запуск та підтримка 24 години

Базова інтеграція через Hosted Page — від 2 до 5 робочих днів. Вартість розраховується індивідуально і залежить від складності (Checkout JS, спліти, нестандартна логіка). Оцінимо ваш проект безкоштовно — напишіть нам.

Типові помилки та як їх уникнути

  • Повторення order_id: завжди додавайте timestamp/UUID до ID замовлення.
  • Неправильний ksort: підпис збирається зі значень, відсортованих за ключем — використовуйте ksort перед конкатенацією.
  • Ігнорування callback: навіть при успішному редиректі клієнта, фінальний статус приходить через webhook — обробляйте обидва.
  • Секретний ключ у клієнтському коді: ніколи не передавайте secret_key на фронтенд.

Наш досвід понад 5 років та 50+ інтеграцій дозволяє гарантувати стабільну роботу та повну документацію. Замовте інтеграцію Fondy сьогодні та отримайте безкоштовну консультацію. Зв'яжіться з нами — оцінимо ваш проект протягом дня.