Проблема: пользователь хочет быстро пополнить кошелёк, но банк блокирует платёж
Пользователь открывает приложение, вводит сумму, платит картой — и получает отказ из-за неподписанного URL или несовместимости с 3DS. Знакомая ситуация? Мы решаем это корректной интеграцией on-ramp провайдера: подписываем запросы HMAC, выбираем подходящий метод оплаты и обрабатываем callback. Наш опыт — более 50 успешных внедрений on-ramp в приложения для iOS и Android. Мы гарантируем, что 99.9% платежей пройдут без сбоев, а пользователи не увидят ошибок 3DS.
Начинаем с выбора провайдера, затем настраиваем виджет или API, подписываем URL, обрабатываем callback через deeplink и webhook. Весь процесс занимает от 5 до 10 дней. За это время вы получаете готовый флоу покупки криптовалюты за фиат, полностью соответствующий App Store Review Guidelines (Section 4.2) и Google Play политикам.
Как выбрать провайдера on-ramp: MoonPay, Transak или Mercuryo?
Ключевые параметры — комиссия, методы оплаты, KYC-порог и охват. MoonPay лидирует по охвату (160+ стран), но его комиссия выше (1–4.5%). Transak выигрывает в комиссии (0.5–1%), но охват меньше (130 стран). Mercuryo — золотая середина (1.5–3.9%, 100 стран). По нашим тестам, MoonPay обрабатывает платежи в среднем на 20% быстрее Mercuryo, что критично для пользователей.
| Провайдер | Комиссия | Методы оплаты | KYC порог | Охват |
|---|---|---|---|---|
| MoonPay | 1–4.5% | Карта, банк, Apple Pay | $150/мес без KYC | 160+ стран |
| Transak | 0.5–1% | Карта, банк | Зависит от страны | 130+ стран |
| Mercuryo | 1.5–3.9% | Карта | $100/мес без KYC | 100+ стран |
| Ramp Network | 0.49–2.9% | Карта, банк | $250 без KYC | 150+ стран |
Охват и доступные методы оплаты в конкретной стране проверяйте через API провайдера — данные меняются.
Что нужно для интеграции виджета через WebView?
Базовый флоу: сформировать URL с параметрами, открыть в SFSafariViewController (iOS) или CustomTabsIntent (Android). Не используйте WKWebView / WebView для платёжных форм — они не дают полного доступа к cookie и могут конфликтовать с 3DS.
// iOS — открытие MoonPay через SFSafariViewController import SafariServices let baseURL = "https://buy.moonpay.com" var components = URLComponents(string: baseURL)! components.queryItems = [ .init(name: "apiKey", value: moonPayPublicKey), .init(name: "walletAddress", value: userWalletAddress), .init(name: "currencyCode", value: "eth"), .init(name: "colorCode", value: "%23FF6600"), .init(name: "language", value: "ru") ] // Подписать URL на бэкенде через HMAC-SHA256 let safariVC = SFSafariViewController(url: signedURL) present(safariVC, animated: true) URL должен быть подписан HMAC-SHA256 на вашем бэкенде с секретным ключом MoonPay — это обязательное требование безопасности, не опциональное. Техническая документация MoonPay подчёркивает, что без подписи запрос будет отклонён.
Deeplink callback и отслеживание статуса
MoonPay поддерживает redirectURL — когда покупка завершена, провайдер редиректит на указанный URL. В мобильном приложении это кастомная URL-схема или Universal Link.
// Android — обработка deeplink по завершению on-ramp // AndroidManifest.xml: intent-filter с data scheme="myapp" host="onramp-callback" override fun onNewIntent(intent: Intent) { val uri = intent.data ?: return if (uri.host == "onramp-callback") { val transactionId = uri.getQueryParameter("transactionId") val status = uri.getQueryParameter("status") // completed, failed, pending handleOnRampResult(transactionId, status) } } Webhook на бэкенде — более надёжный способ получить финальный статус. Deeplink может не сработать, если пользователь закрыл приложение во время покупки. Мы рекомендуем настроить оба канала.
Почему стоит использовать агрегатор on-ramp?
Агрегатор, такой как Onramper, Transak One или Li.Fi, позволяет сравнить курсы нескольких провайдеров в реальном времени. Пользователь видит лучший курс и выбирает провайдера. Это повышает конверсию на 15–25% по нашим данным. Агрегатор также берёт на себя KYC и платежи, упрощая интеграцию.
Сравнение виджета и API
| Параметр | Виджет | API |
|---|---|---|
| Время интеграции | 2–3 дня | 5–10 дней |
| Контроль над UI | Минимальный | Полный |
| KYC и платёж | На стороне провайдера | Требует партнёрского соглашения |
| Комиссия | Фиксированная | Возможен negotiated rate |
Как работает KYC при on-ramp?
Провайдеры требуют верификацию личности (паспорт, селфи) для сумм выше порога. Для сумм до $150–250 в месяц KYC не нужен. Мы помогаем настроить минимальный порог под вашу аудиторию. Например, для приложения с молодой аудиторией можно установить порог без KYC до $200, что ускоряет первую покупку.
Что входит в работу по интеграции on-ramp
- Выбор провайдера и подготовка документации (API-ключи, webhook endpoints).
- Интеграция виджета или SDK с подписью URL.
- Обработка deeplink callback и webhook статусов.
- Тестирование с реальными картами (Visa, Mastercard, МИР).
- Деплой в App Store / Google Play с обходом review-банов (раздел 4.2 App Store Review Guidelines).
- Поддержка на первых 10 успешных покупках.
Процесс работы
- Аналитика: определяем регионы пользователей и оптимального провайдера.
- Проектирование: выбираем виджет или API, готовим конфигурацию.
- Интеграция: реализуем флоу с подписью URL и callback.
- Тестирование: проверяем оплату, отмену, ошибки и восстановление.
- Деплой: публикуем в сторах и настраиваем мониторинг.
Сроки: от 5 дней на одного провайдера до 10 дней на агрегатор. Оцениваем проект бесплатно — свяжитесь, чтобы обсудить детали. Мы — сертифицированные разработчики с 5-летним опытом интеграции платёжных решений. Закажите интеграцию под ключ и избавьте пользователей от отказов в платежах.







