Реализация сканирования банковских карт через камеру мобильного приложения

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

Реализация сканирования банковских карт через камеру мобильного приложения

Ручной ввод номера карты из 16 цифр — источник опечаток и брошенных сессий оплаты. Сканирование через камеру решает это за 1–2 секунды. Вопрос только в том, какой инструмент использовать: готовая библиотека OCR для карт или общий ML-фреймворк.

Инструменты и их реальные ограничения

Card.io (PayPal) — исторически популярная библиотека. Проблема: с 2018 года не обновляется, на iOS 16+ периодически вылетает при первом запуске из-за изменений в AVCaptureSession. Не рекомендуем для новых проектов.

Stripe CardScan / Bouncer — Stripe купил Bouncer и открыл card-scan-android / card-scan-ios под Apache 2.0. Это нейросетевое решение на базе TFLite/CoreML, работает офлайн. Точность распознавания номера — выше 95% на картах стандартного формата в нормальных условиях освещения. На iOS подключается через SPM: https://github.com/stripe/stripe-ios, на Android — через Gradle: com.stripe:stripecardscan.

Vision framework (iOS) + ML Kit (Android) — нативные OCR без сторонних зависимостей. VNRecognizeTextRequest (Vision, iOS 13+) распознаёт текст на изображении в реальном времени. Фильтруем результаты по паттерну \b\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}\b. ML Kit Text Recognition v2 на Android работает аналогично через TextRecognizer.

Минус нативного OCR: нужно самостоятельно писать логику определения зоны карты, фильтрации ложных срабатываний (случайные 16-значные числа), стабилизации результата (confirmation через 3–5 последовательных одинаковых результата). Готовая библиотека типа Bouncer делает это из коробки.

Что распознаём

Номер карты — основная цель. Срок действия (MM/YY) — Vision и ML Kit справляются. Имя держателя — OCR справляется хуже из-за вариативности шрифтов и тиснения. Рекомендуем: номер + срок сканируем автоматически, имя — предлагаем заполнить вручную как необязательное поле.

Никогда не распознаём и не сохраняем CVV/CVC — он на обороте, и хранить его даже временно нарушает PCI DSS. Сканирование фронтальной стороны: номер + срок + опционально имя.

Реализация на Flutter

card_scanner pub.dev пакет работает через Platform Channels к нативным SDK. Альтернатива — google_mlkit_text_recognition + собственный парсер. Для production-приложения предпочтительнее Bouncer SDK через FFI-интеграцию — точнее и надёжнее в нестандартных условиях.

Разрешения и приватность

iOS: NSCameraUsageDescription в Info.plist с понятным объяснением — «для сканирования карты при оплате». Android: uses-permission android:name="android.permission.CAMERA" + runtime request через ActivityResultContracts.RequestPermission. Фреймы с камеры обрабатываем только в памяти — не сохраняем на диск, не отправляем на сервер. Privacy-важная деталь для прохождения App Store Review.

Ориентиры по срокам

Интеграция Bouncer/CardScan с базовым UI (превью камеры, рамка карты, анимация сканирования): 1–2 дня. Кастомный UI + нативный Vision/ML Kit с собственной логикой стабилизации: 2–3 дня.