Ми маємо 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 та високу конверсію платежів. Отримайте консультацію: ми оцінимо ваш проект. Зв'яжіться з нами — ми підкажемо, як краще інтегрувати платежі у ваш додаток.







