Ми маємо 5+ років досвіду інтеграції платіжних шлюзів та понад 30 успішних проєктів з Fondy. Ми виконуємо інтеграцію платіжного шлюзу в мобільний додаток під iOS та Android. Помилка при інтеграції — це не просто некоректна оплата, а ризик блокування в App Store через порушення Section 4.2 або Section 5.1. За 5+ років ми провели 30+ успішних інтеграцій і знаємо, як обійти типові пастки: неправильний підпис, збій 3DS, несумісність з Apple Pay. Використовуємо нативні SDK cloudipsp-ios / cloudipsp-android, що гарантує проходження рев'ю та максимальну конверсію (до 95%).
Кейс: виправлення підпису для великого e-commerce проекту
Наш клієнт — маркетплейс з мільйонною аудиторією — зіткнувся з помилкою Invalid signature при інтеграції Fondy. Ми з'ясували, що проблема в невірному сортуванні параметрів: сервер клієнта включав зайвий параметр merchant_data, який не повинен брати участь у підписі. Після виправлення логіки на стороні сервера платежі пішли без збоїв, а конверсія оплат зросла на 15%. Цей кейс показує, наскільки важлива автоматизація підписів.
Що таке двоетапна схема оплати і чому вона безпечніша?
Fondy використовує двоетапну схему: клієнт створює токен карти на мобільному пристрої, передає його на сервер, а сервер проводить платіж. Це безпечно і знижує навантаження PCI DSS. На відміну від WebView-інтеграції, нативний SDK не передає чутливі дані через ваш сервер, що мінімізує ризики витоку. Додатково ви отримуєте вбудовану підтримку 3DS 2.0, Apple Pay та Google Pay — все це без додаткових витрат на розробку.
Як уникнути типових помилок при інтеграції Fondy?
Підключення SDK (для обох платформ):
// Android, build.gradle implementation("com.cloudipsp:cloudipsp-android:1.x.x") // iOS, Podfile pod 'Cloudipsp' Отримання token для SDK (серверний endpoint)
POST https://pay.fondy.eu/api/checkout/token { "request": { "server_callback_url": "http://localhost:3000/payment/callback", "order_id": "ORDER-1234", "currency": "UAH", "merchant_id": "1396424", "order_desc": "Замовлення №1234", "amount": "15000", "signature": "sha1_signature" } } Відповідь містить token — передається в мобільний SDK.
Android: CardInputView та оплата
// Токен отриманий від сервера val token = "server_token" val cardInputView = CardInputView(context) val cardNumber = CardNumber("4111 1111 1111 1111") val mm = ExpireMonth("12") val yy = ExpireYear("2025") val cvv = Cvv("123") Cloudipsp.checkout( context = context, token = token, card = Card(cardNumber, mm, yy, cvv), email = "[email protected]", listener = object : Cloudipsp.PayCallback { override fun onPaidProcessed(order: Order) { if (order.status == Order.Status.Approved) { handleSuccess(order.transactionId) } } override fun onPaidFailure(e: Cloudipsp.Exception) { handleError(e.message) } override fun on3dsRedirect(request: Cloudipsp.Request3ds, webView: WebView) { webView.loadUrl(request.url) } } ) iOS: CloudipspView
import Cloudipsp let api = Cloudipsp(merchantId: 1396424, callbackUrl: "http://localhost:3000/payment/result") let paymentController = PaymentController(token: serverToken) paymentController.present(in: self) { [weak self] result in switch result { case .success(let order): self?.handleSuccess(order.orderStatus) case .failure(let error): self?.handleError(error.localizedDescription) } } Чому нативна інтеграція краща за WebView?
Нативний SDK Cloudipsp краще ніж WebView: він у 2–3 рази прискорює оплату і підвищує конверсію за рахунок вбудованого 3DS та push-сповіщень. WebView-обгортки часто блокуються App Store (див. Section 4.2) і не підтримують Apple Pay / Google Pay. Ми гарантуємо коректну роботу з APNs та FCM для сповіщень про статус платежу. Економія бюджету на доопрацювання після рев'ю — до 40% порівняно з WebView-рішенням.
Як підключити Fondy за 4 кроки
- Отримайте merchant ID та пароль від Fondy через особистий кабінет.
- Встановіть SDK: через Gradle для Android або CocoaPods для iOS.
- Створіть серверний endpoint
/api/tokenдля генерації токена. - Реалізуйте UI з
CardInputView(Android) абоPaymentController(iOS) та обробку callback.
Підпис запитів та верифікація callback
Підпис формується через SHA-1 всіх параметрів запиту, відсортованих в алфавітному порядку, з додаванням password. Неправильне сортування — часта причина помилки Invalid signature. Ми автоматизуємо цей процес. Згідно з документацією Fondy, callback-запити від Fondy на server_callback_url верифікуються аналогічно: всі поля відповіді сортуються, підписуються. Це гарантує справжність транзакції.
Порівняння етапів на iOS та Android
| Етап | iOS | Android |
|---|---|---|
| Підключення SDK | CocoaPod Cloudipsp |
Gradle com.cloudipsp:cloudipsp-android |
| UI для введення карти | PaymentController |
CardInputView |
| Обробка 3DS | Автоматичний WebView | Cloudipsp.PayCallback.on3dsRedirect |
| Токенізація | Через Cloudipsp API |
Через Cloudipsp.checkout |
Типові помилки та їх вирішення
| Помилка | Причина | Рішення |
|---|---|---|
Invalid signature |
Неправильне сортування параметрів | Автоматизуємо підпис |
| 3DS не відкривається | Відсутній WebView на iOS | Використовувати PaymentController |
| Callback не приходить | Невірний server_callback_url |
Перевірити доступність сервера |
Що входить в роботу
- Підключення Cloudipsp SDK (iOS / Android)
- Серверний endpoint для отримання token
- Реалізація UI з CardInputView або PaymentController
- Налаштування 3DS через WebView
- Верифікація callback-запитів
- Тестування в пісочниці та продуктивному середовищі
- Документація з інтеграції та передача доступів
- Навчання команди замовника роботі з платіжним модулем
- Пост-релізна підтримка на 2 тижні
Терміни та вартість
Інтеграція однієї платформи займає 2–3 дні. Для обох платформ — до 4 днів при паралельній розробці. Вартість інтеграції однієї платформи — від 400$ (від 700$ для обох). Вартість розраховується індивідуально і залежить від архітектури вашого додатку, але ми гарантуємо прозорий кошторис до початку робіт. Є досвід інтеграції з Firebase, Supabase та кастомними бекендами.
Замовте інтеграцію Fondy у ваш додаток — ми гарантуємо проходження App Store Review та високу конверсію платежів. Отримайте консультацію: ми оцінимо ваш проект безкоштовно. Зв'яжіться з нами — ми підкажемо, як краще інтегрувати платежі у ваш додаток.







