Сканування банківських карток камерою в мобільному додатку

Ручне введення реквізитів картки — найчастіша точка, де клієнт кидає оплату. Ми розробляємо та впроваджуємо сканування банківських карток камерою під ключ: розпізнавання займає секунди, а кількість покинутих кошиків помітно падає. Обговоримо задачу — повернемося з оцінкою та планом.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Сканування банківських карток камерою в мобільному додатку
Середній
~2-3 дні
Часті запитання

Сканування банківських карток камерою: де ламається введення

Ручне введення картки — найдорожча ділянка оплати в мобільному застосунку. Людина вводить 16 цифр, термін дії та код із зворотного боку, помиляється в одній цифрі, отримує відмову від банку і йде.

На довгій формі це трапляється частіше, ніж здається: частка незавершених замовлень зростає саме на кроці введення платіжних даних, а не на виборі товару чи доставки.

Сканування банківських карток камерою прибирає цю ділянку майже повністю: навів об'єктив — номер, термін дії та ім'я власника розпізнаються і підставляються в поля. Але саме по собі розпізнавання не вирішує задачу.

Якщо камера невірно читає тиснені цифри на блискучій ламінації, плутає 6 і 8, 0 і 8, 1 і 7, або підставляє чужий номер із сусіднього кадру — користувач отримує помилку введення там, де її раніше не було, і довіра до оплати падає.

Окрема категорія збоїв — поведінка на реальних пристроях. Камера на бюджетному апараті фокусується повільніше, при слабкому світлі кадр шумний, а на картках із вертикальним або нестандартним розташуванням цифр розпізнавання зривається.

Якщо застосунок при цьому не залишає зрозумілого шляху назад — повернутися до ручного введення картки, виправити одне поле, не починаючи заново, — відвал на оплаті відбувається вже після того, як людина витратила час.

Ціна цих збоїв рахується не в зручності, а в конверсії: кожен відсоток відвалу на оплаті — це покинуті кошики та втрачений виторг, який потім не повернути повторним дотиком.

Розбираємо, як це закривається на рівні розпізнавання, валідації та сценарію повернення до ручного введення.

Що дає розпізнавання картки в застосунку

Розпізнавання картки камерою прибирає найдорожчу ділянку оплати — ручне введення 16 цифр, терміну дії та імені власника. Користувач наводить камеру, номер підставляється у форму за частки секунди, а оформлення замовлення скорочується з півтори-двох хвилин до 15-20 секунд.

На довгих формах, де людина вже втомилася заповнювати адресу та доставку, це помітна різниця: частка покинутих кошиків на кроці оплати падає, а конверсія оплати зростає без жодної зміни в маркетингу.

Другий ефект — успішні оплати. Помилки при ручному введенні дають відмови не з вини банку: неправильна цифра, переплутаний термін, зайвий пробіл.

Сканер зчитує дані з фізичної картки та підставляє їх як є, тому частка відхилених транзакцій через невірні реквізити знижується в рази. Це ті відмови, які раніше поверталися в підтримку й вимагали повторної спроби.

Третій ефект — зниження звернень. Кожне невдале введення — це тікет «не проходить оплата», листування та втрачений клієнт. Коли реквізити підставляються автоматично, а користувач бачить розпізнаний номер і може його виправити, спірних ситуацій стає менше.

Навантаження на першу лінію підтримки падає, а час, що звільнився, йде на реальні проблеми, а не на розбір одруківок.

Окремо варто сказати про довіру. Сканер працює на пристрої й не надсилає зображення картки на сервер — розпізнається лише текст, і це важливо проговорити в інтерфейсі. Користувач бачить, що застосунок не «фотографує» картку, а зчитує цифри, і охочіше довіряє оплаті. Розбираємо, як це влаштовано і що потрібно врахувати при впровадженні.

Способи зчитування картки: порівняння підходів

Вибір способу зчитування картки — це не питання смаку, а компроміс між часткою успішних операцій, вимогами платіжного провайдера та вартістю підтримки. Нижче — чотири реальні альтернативи, між якими обирають на старті та при розвитку продукту.

Варіант Коли підходить Обмеження
Ручне введення Резервний шлях, старі пристрої, картки з нечитабельним тисненням Помилки в 16 цифрах, вища частка відмов, повільніше
Камера Основний сценарій для масового застосунку Залежить від освітлення та фокуса, потрібен фолбек на ручне введення
Зовнішній зчитувач Точки з високим навантаженням, приймання платежів на місці Додаткове обладнання та спряження
NFC Безконтактні картки, швидке приймання Не покриває картки без чипа, обмеження за пристроєм

На практиці робочий сценарій майже завжди комбінований: камера як основний шлях, ручне введення як страховка, NFC і зовнішній зчитувач — там, де потрібна швидкість на потоці.

Таке поєднання дає стійкість: якщо камера не розпізнала картку, користувач не йде, а доводить операцію до кінця.

Окремо варто перевірити сумісність із платіжним провайдером і вимогами безпеки — не кожен спосіб зчитування картки допускається в конкретному контурі. Ми розбираємо ці обмеження до початку розробки, щоб обрана схема не потребувала переробки на етапі інтеграції.

Як ми впроваджуємо сканер: етапи робіт

Роботи виконуються ітераціями: спочатку фіксуємо, як введення влаштовано зараз, потім налаштовуємо розпізнавання під реальні картки та сценарії, і лише після цього передаємо модуль.

Такий порядок усуває головний ризик — «сканує, але не ті картки» та «працює на тестовому пристрої, але не в користувача».

  1. Аудит введення. Дивимося поточну форму оплати: ручне введення, маски, валідація номера, поведінка при помилці, аналітика відмов на кроці. Визначаємо, де втрачаються користувачі та що саме має закрити сканер.
  2. Узгодження сценарію. Фіксуємо, які картки та типи підтримуємо, що відбувається при невдалому розпізнаванні, чи є ручне введення як запасний шлях. Окремо проговорюємо роботу з камерою: дозволи, поведінка при відмові в доступі, підказки користувачеві.
  3. Налаштування розпізнавання. Підключаємо розпізнавання номера, терміну дії та імені власника, налаштовуємо пороги впевненості та правила, коли номер приймається, а коли просимо повторити. Навчаємо модуль на реальних картках, а не на ідеальних зразках.
  4. Перевірка на пристроях. Проганяємо на парку телефонів: різні камери, освітлення, нахил, відблиски, потерті та нестандартні картки. Дивимося не лише точність, а й швидкість відгуку та витрату батареї при тривалій роботі камери.
  5. Інтеграція та захист. Вбудовуємо модуль у форму оплати, перевіряємо, що дані не осідають у логах і не йдуть в аналітику, а введення відповідає вимогам платіжного провайдера.
  6. Приймання та метрики. Порівнюємо частку успішних сканувань і час до заповнення форми до та після. Фіксуємо поріг, нижче якого модуль вважаємо неготовим.
  7. Передача модуля. Віддаємо налаштований компонент, інструкцію з підключення, список перевірених пристроїв і правила оновлення при зміні дизайну карток.

Що прискорює роботу

Якщо в застосунку вже є камера та форма оплати, впровадження сканера займає менше часу — не потрібно будувати введення з нуля.

Основний час іде на налаштування розпізнавання під реальні картки та перевірку на пристроях: саме там спливають відблиски, потертості та нестандартні шрифти, які ламають «ідеальний» сценарій.

Що замовник отримує на руки

Передаємо не «працюючий застосунок», а комплект, за яким ваша команда зможе експлуатувати та розвивати модуль сканування банківських карток камерою без нас. Кожен артефакт закриває свій клас завдань: збірку, інтеграцію, безпеку, підтримку.

  • Модуль сканування — ізольований компонент розпізнавання номера, терміну дії та власника картки з камери, що підключається до вашого застосунку як окрема бібліотека. Усередині — логіка попередньої обробки кадру, розпізнавання та валідації номера за алгоритмом Луна, щоб у форму не потрапляли помилкові дані.
  • Конфігурації — набори параметрів під ваші сценарії: чутливість розпізнавання, таймаути, поведінка при поганому освітленні та відблисках, пороги впевненості. Змінюються без перезбирання застосунку.
  • Схеми інтеграції — діаграми потоків даних між камерою, модулем розпізнавання та вашим бекендом, включно з точками, де номер картки не повинен залишати пристрій.
  • Політики доступу — правила роботи з камерою та персональними даними: які дозволи запитуються, що логується, що маскується, як налаштовано відкликання доступу.
  • Документація — опис інтерфейсів модуля, приклади викликів, розбір типових помилок розпізнавання та способів їх усунення.
  • Регламенти підтримки — порядок оновлення модуля, відкат на попередню збірку, реакція на скарги щодо якості розпізнавання та передача інцидентів.
  • Тестовий набір — добірка зображень карток у різних умовах зйомки для перевірки якості розпізнавання при кожному оновленні.

Комплект розрахований на те, що інтеграцію та першу експлуатацію ваша команда проведе самостійно. Опишіть задачу — повернемося з оцінкою та планом за вашим сценарієм.

Кейс: сканування карток у застосунку банку

Що було до

У застосунку банку оплата карткою впиралася в ручне введення: клієнт перемикався між екраном і пластиком, набирав 16 цифр, термін дії та код із зворотного боку.

На довгих номерах помилялися в одній-двох цифрах — платіж відхилявся вже на боці банку, і людина поверталася до початку. Підтримка отримувала потік однотипних звернень «не проходить оплата», хоча проблема була не в рахунку, а в одруківці під час введення.

Що змінили

Наші інженери вбудували розпізнавання картки камерою прямо у форму оплати — на базі Google ML Kit. Камера наводиться на картку, номер і термін підставляються в поля автоматично, клієнту залишається перевірити дані та підтвердити.

Додали контроль якості кадру: підказки щодо положення картки, підсвічування меж і розпізнавання номера банку за першими цифрами, щоб клієнт одразу бачив, та чи це картка.

Окремо опрацювали сценарії, де камера недоступна або картка пошкоджена — ручне введення залишилося як запасний шлях, а не як основний.

Що стало

Метрика До Після
Середній час введення картки ~40 секунд ~8 секунд
Частка успішних оплат з першої спроби 71% 94%
Звернення до підтримки щодо оплати базовий рівень −38%

Час введення скоротився в рази, а основна частина відмов пішла разом з одруківками під час ручного набору. Навантаження на підтримку з теми оплати знизилося майже на 40% — час, що звільнився, команда спрямувала на розбір реальних спірних операцій.

Чим камера відрізняється від NFC та ручного введення?

Камера, NFC та ручне введення вирішують одне завдання — отримати номер картки та термін дії — але по-різному поводяться на реальному парку пристроїв.

NFC зчитує дані безконтактно й майже миттєво, однак працює лише там, де є модуль, картка підтримує безконтактну оплату і користувач готовий піднести її до телефону.

Ручне введення не залежить від заліза взагалі, зате на 16 цифрах люди помиляються: друкарська помилка в одній цифрі — і платіж не проходить, а користувач іде розбиратися.

Камера займає середину і на практиці закриває більше сценаріїв. Розпізнавання йде по відеопотоку: застосунок знаходить у кадрі прямокутник картки, вирівнює перспективу, читає номер і термін, а іноді й ім'я власника.

Точність розпізнавання тримається високою, поки картка потрапляє в рамку і освітлення дозволяє розрізняти рельєфний шрифт. Складнощі передбачувані: відблиски на ламінаті, затерті або нестандартні картки, слабке світло.

Тому розпізнавання не замінює перевірку, а доповнює її — контрольна сума номера відсікає частину помилок ще до відправлення на сервер.

Сумісність пристроїв — головний аргумент за камеру. Вона є на будь-якому смартфоні, тоді як NFC-модуль присутній не скрізь, а на частині моделей вимкнений або обмежений політиками. Камера не вимагає згоди на безконтактну оплату і не конфліктує з налаштуваннями безпеки.

Ручне введення залишається як запасний шлях: якщо камера не змогла прочитати картку, користувач вводить дані вручну, а застосунок підказує формат і перевіряє номер на льоту.

За швидкістю камера програє NFC на частки секунди, але виграє в ручного введення в рази і знижує частку покинутих форм. Найнадійніше комбінувати: спочатку пробуємо камеру, при невдачі пропонуємо ручне введення, а NFC підключаємо там, де він доступний.

Такий порядок дає максимальне покриття пристроїв і передбачувану точність розпізнавання без прив'язки до однієї технології.

Технічні сумніви та відповіді

Сканування картки камерою — ділянка, де сходяться три ризики: витік даних, нестабільна якість розпізнавання та розбіжність пристроїв у аудиторії. Нижче — відповіді на те, що найчастіше запитують на етапі оцінки.

Куди надходить зображення картки і що зберігається на пристрої?

Кадр обробляється на пристрої й у пам'ять застосунку не записується: розпізнавання відбувається за потоком з камери, а на сервер надходить лише результат — номер, термін дії та ім'я власника. Зображення відкидається одразу після розбору, у тимчасових файлах не осідає.

Такий режим знімає основний клас претензій під час перевірок: чутливих даних, які можна втратити, просто немає.

Що з розпізнаванням у слабкому освітленні та на блискучому пластику?

Якість тримається не на одній моделі, а на зв'язці: автокорекція експозиції та контрасту, пошук меж картки в кадрі, перевірка номера за контрольною сумою.

Якщо впевненість нижча за поріг, застосунок не підставляє сумнівні цифри, а просить повторити кадр або вводить номер вручну — користувач не отримує помилку в реквізитах. На ембосованих і глянсових картках допомагає зміна кута та підказка в інтерфейсі.

Чи працюватиме на старих пристроях?

Так, але з різною швидкістю. На слабкому залізі розпізнавання відбувається за спрощеним сценарієм: рідше опитування кадрів, нижча роздільна здатність аналізу, частина кроків виконується на сервері. Функція залишається робочою, зростає лише час відгуку.

Поріг відсікання задаємо за вимірами на реальному парку пристроїв, а не за характеристиками зі специфікації.

Як бути з доступом до камери та приватністю?

Дозвіл запитується в момент першого сканування, з поясненням, навіщо він потрібен, — не на старті застосунку. Відмова не блокує оплату: залишається ручне введення.

У політиці конфіденційності явно описано, що кадри не зберігаються й не передаються третім особам, а доступ до камери можна відкликати в налаштуваннях у будь-який момент.

Що входить у підтримку після запуску?

Збираємо статистику за часткою успішних сканувань і причинами відмов, окремо за моделями пристроїв і версіями системи. Це дозволяє точково правити сценарій, коли виходить нова модель телефона або оновлюється система, а не переписувати модуль цілком. Оновлення бібліотек розпізнавання викочуємо регулярно — точність не деградує з часом.

Обговоримо задачу сканування карт у вашому застосунку

Щоб розмова була предметною, а не «розкажіть про сканування карт загалом», корисно одразу окреслити вхідні дані: платформа та її актуальна гілка, які картки мають розпізнаватися (тільки локальні чи ще й міжнародні), де відбувається введення — оплата, прив'язка картки в особистому кабінеті, реєстрація, — і що вже є в застосунку: камера, екран введення, шар роботи з платіжним провайдером. Цього достатньо, щоб оцінити обсяг і не переробляти потім інтеграцію.

Далі ми повертаємося з оцінкою та планом впровадження: які екрани зачіпаємо, де розпізнаємо номер і термін дії, як обробляємо картки без рельєфних цифр і нестандартні розкладки, як вбудовуємо ручне введення як запасний шлях.

Окремим пунктом — що робимо з безпекою: розпізнавання на пристрої, без надсилання кадру на сервер, і як це узгоджується з вимогами платіжного провайдера.

Ось що варто підготувати до обговорення задачі:

  • платформа та актуальна гілка, під яку збираємо застосунок;
  • список карток, які мають розпізнаватися, і пріоритет за ними;
  • екрани, де потрібне введення картки, і поточний сценарій;
  • платіжний провайдер або шлюз, з яким уже йде інтеграція;
  • чи є доступ до тестових карток і стенду провайдера;
  • вимоги щодо безпеки та зберігання даних на вашій стороні;
  • обмеження за строками та що вже закладено в поточний реліз.

Опишіть задачу в цьому обсязі — повернемося з оцінкою, планом впровадження та розбивкою за етапами. Якщо щодо частини пунктів ясності немає, це не блокер: уточнимо на дзвінку та зафіксуємо в плані.

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

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714