Интеграция платежного шлюза Тинькофф Кассы в мобильное приложение

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Интеграция платежного шлюза Тинькофф Кассы в мобильное приложение
Средний
~2-3 дня
Часто задаваемые вопросы

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

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Интеграция платежного шлюза Тинькофф Кассы в мобильное приложение

Тинькофф Касса (сейчас T-Касса) предоставляет нативные SDK для iOS и Android. Поддерживает оплату картой, через СБП, Tinkoff Pay и Apple/Google Pay. Особенность — SDK включает готовый платёжный экран, поэтому базовая интеграция занимает меньше дня, если бэкенд уже готов.

Подключение SDK

// Android
implementation("ru.tinkoff.acquiring:ui:x.x.x")
// iOS, SPM
.package(url: "https://github.com/TinkoffCreditSystems/AcquiringSdk_IOS")

Основной flow

T-Касса работает по двухэтапной схеме: сначала сервер инициализирует платёж и получает paymentId, затем SDK на клиенте проводит его.

Серверная инициализация:

POST https://securepay.tinkoff.ru/v2/Init
{
    "TerminalKey": "your_terminal_key",
    "Amount": 150000,
    "OrderId": "ORDER-1234",
    "Description": "Оплата заказа",
    "Token": "sha256_signature"
}

Ответ содержит PaymentId и PaymentURL. PaymentId передаётся в SDK для проведения платежа в нативном UI.

Android: запуск платёжного экрана

val tinkoffAcquiring = TinkoffAcquiring(
    context,
    terminalKey = "your_terminal_key",
    publicKey = "your_public_key"
)

val paymentOptions = PaymentOptions().setOptions {
    setTerminalParams(
        terminalKey = "your_terminal_key",
        publicKey = "your_public_key"
    )
    orderOptions {
        orderId = "ORDER-1234"
        amount = Money.ofRubles(1500)
        title = "Заказ №1234"
        description = "Оплата заказа"
        savingAsParentPayment = false
    }
    featuresOptions {
        useSecureKeyboard = true
        cameraCardScanner = CameraCardIOScanner()  // опционально
        fpsEnabled = true   // СБП
        tinkoffPayEnabled = true
    }
}

val launcher = registerForActivityResult(TinkoffAcquiring.createPaymentContract(context)) { result ->
    when (result.status) {
        AsdkState.Success -> handleSuccess(result.paymentId)
        AsdkState.Cancelled -> {}
        AsdkState.Error -> handleError(result.error)
        else -> {}
    }
}

tinkoffAcquiring.openPaymentScreen(
    activity = this,
    paymentOptions = paymentOptions,
    launcher = launcher
)

iOS: AcquiringUISDK

import TinkoffASDKUI

let credential = AcquiringSdkCredential(
    terminalKey: "your_terminal_key",
    publicKey: "your_public_key"
)

let acquiringSDK = try AcquiringUISDK(credential: credential)

let paymentData = PaymentInitData(
    amount: 150000,  // в копейках
    orderId: "ORDER-1234",
    customerKey: "user_123"
)

acquiringSDK.presentPaymentView(
    on: self,
    paymentData: paymentData,
    configuration: AcquiringViewConfiguration()
) { result in
    switch result {
    case .success(let paymentInfo):
        print("Payment ID: \(paymentInfo.paymentId)")
    case .failure(let error):
        print("Error: \(error)")
    case .cancelled:
        break
    }
}

Tinkoff Pay: отдельный кейс

Tinkoff Pay открывает приложение Т-Банка для подтверждения платежа. Для работы нужно, чтобы Т-Банк был установлен на устройстве. SDK проверяет это автоматически через UIApplication.canOpenURL (iOS) или PackageManager.getLaunchIntentForPackage (Android) и скрывает кнопку если приложение не найдено.

Подпись запросов (Token)

Все серверные запросы к API T-Кассы подписываются через SHA-256: конкатенация значений параметров + Password в алфавитном порядке ключей. Неправильный token — частая причина ошибки 0 (Invalid Token) при инициализации платежа.

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

  • Подключение ASDK iOS / Android
  • Серверная инициализация платежа с корректной подписью
  • Настройка опций: СБП, Tinkoff Pay, сохранение карты
  • Обработка статусов и Webhook подтверждение
  • Тестирование через тестовый терминал

Сроки

2–3 дня. Стоимость рассчитывается индивидуально.