Интеграция платежного шлюза Robokassa в мобильное приложение

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Интеграция платежного шлюза Robokassa в мобильное приложение
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    760
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    640
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1056
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    878
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    449

Интеграция платежного шлюза Robokassa в мобильное приложение

Robokassa не предоставляет нативный мобильный SDK — интеграция строится через WebView или через серверный API с кастомным UI на клиенте. Это не минус, а особенность: подход через WebView быстрее в реализации, подход через API даёт полный контроль над UX.

Вариант 1: WebView с платёжной формой Robokassa

Самый быстрый способ. Сервер генерирует URL платёжной формы, клиент открывает его в WebView:

https://auth.robokassa.ru/Merchant/Index.aspx
    ?MerchantLogin=your_login
    &OutSum=1500.00
    &InvId=1234
    &Description=Заказ №1234
    &SignatureValue=md5_signature
    &IsTest=0

Подпись SignatureValue = MD5(MerchantLogin:OutSum:InvId:Password1).

// Android: открываем в CustomTabs для лучшего UX
val customTabsIntent = CustomTabsIntent.Builder()
    .setShowTitle(false)
    .build()
customTabsIntent.launchUrl(context, Uri.parse(paymentUrl))
// iOS: SFSafariViewController
let safariVC = SFSafariViewController(url: URL(string: paymentUrl)!)
present(safariVC, animated: true)

Для отслеживания завершения платежа Robokassa вызывает ResultURL — серверный callback. Настроить его нужно в личном кабинете Robokassa → Настройки → Уведомления.

Вариант 2: API-интеграция с кастомным UI

Robokassa поддерживает прямую передачу карточных данных через API (только для зарегистрированных мерчантов с выполненными требованиями безопасности):

POST https://auth.robokassa.ru/Merchant/Payment/CreateV2
{
    "MerchantLogin": "your_login",
    "OutSum": "1500.00",
    "InvId": "1234",
    "Description": "Заказ",
    "SignatureValue": "...",
    "PaymentMethod": "BankCard",
    "CardNumber": "4111111111111111",
    "CardExpiryDate": "1225",
    "CardCvv": "123"
}

Если банк требует 3DS, API вернёт PaymentUrl для редиректа на ACS-страницу банка. Дальше — стандартный 3DS flow через WebView.

Получение результата: ResultURL vs SuccessURL

Robokassa различает два типа уведомлений:

  • ResultURL — серверный POST-запрос с результатом транзакции. Вызывается независимо от действий пользователя. Это основной способ узнать реальный статус платежа.
  • SuccessURL — редирект пользователя после успешной оплаты. Ненадёжен: пользователь мог закрыть браузер до редиректа.

В мобильном приложении для перехвата SuccessURL используется deeplink:

// SuccessURL при создании платежа: yourapp://payment/success?InvId={InvId}&OutSum={OutSum}

// В Activity с intent-filter для yourapp://
override fun onNewIntent(intent: Intent?) {
    super.onNewIntent(intent)
    val uri = intent?.data ?: return
    if (uri.host == "payment" && uri.path == "/success") {
        val invId = uri.getQueryParameter("InvId")
        // Проверяем статус на сервере, не доверяем только deeplink
        verifyPaymentOnServer(invId)
    }
}

Проверка подписи на сервере

Обязательно верифицировать подпись входящего ResultURL:

SignatureValue_входящий == MD5(OutSum:InvId:Password2)

Password2 — второй пароль Robokassa, отличается от первого. Если проверку не делать — любой может имитировать успешный платёж GET-запросом на ResultURL.

Что входит в работу

  • Серверная генерация платёжной ссылки с подписью
  • Реализация WebView или CustomTabs/SFSafariViewController
  • Настройка deeplink для обработки SuccessURL / FailURL
  • Серверный обработчик ResultURL с верификацией подписи
  • Тестирование в тестовом режиме Robokassa

Сроки

2–3 дня для WebView-интеграции. API с кастомным UI — 3–4 дня. Стоимость рассчитывается индивидуально.