Зачем банкам переписывать терминальные приложения на Android
Платежные терминалы работают с деньгами — любая уязвимость грозит убытками и репутационными рисками. Устаревший код, старые библиотеки или несовместимость с новыми протоколами (например, PCI DSS 4.0) делают систему мишенью для хакеров.
Переход на современный стек (Kotlin, Jetpack Compose, чистую архитектуру) позволяет внедрить актуальное шифрование данных и быстрее закрывать уязвимости через обновления.
Также клиенты хотят уже сейчас платить через QR, NFC и тд — но добавлять это в legacy-код сложно и дорого. Современное Android-приложение на MVVM + модульной архитектуре дает возможность «собирать» функционал как конструктор (например, подключить СБП за быстрее).
Наш опыт работы с приложениями для банковских терминалов
Заказчик
Клиент является провайдером платежных сервисов для банков и ритейла. Он занимается разработкой, внедрением и поддержкой ПО в области платежных технологий.
Цель
Стояла задача переписать приложение для платежных терминалов на Android
Процесс
Команда SmartexSoft выбрала чистую архитектуру, паттерн MVVM и Jetpack Compose поскольку этот стек обеспечивает четкое разделение обязанностей, улучшает тестируемость и гибкость кода.
Этот стек обеспечивает самодокументируемый код, который легко понять и поддерживать.
После тщательного исследования возможностей Jetpack Compose UI мы поняли, это технология подходит. В итоге достигли следующих преимуществ благодаря работе с этой технологией: гибкость при создании интерфейсов.
Мы смогли легко изменять внешний вид и поведение компонентов, добавлять новые функции в приложение в процессе.
Jetpack Compose оптимизирован для работы на мобильных устройствах, что обеспечивает высокую производительность приложений.Современная технология => в будущем будет легче поддерживать. Мы разработали адаптивный интерфейс под разные терминалы.
Особенность данного проекта заключалась в сложном окружении, необходимом для отладки и тестирования решений с вовлечением удаленных серверов и ограниченным доступом к ним. Несмотря на это, наши инженеры, благодаря хорошо налаженной коммуникации и взаимодействием с командой заказчика, смогли оперативно решать все вопросы, в том числе и с оперативными восстановлением связи тестовых терминалов с сервером.
Мы разработали интерфейс помощью Jetpack Compose UI App Development Toolkit. Наша команда разработала адаптивный интерфейс под разные терминалы.
Результат
В Android-приложении реализованы функции: оплаты, отмены транзакции, возврата, печати копии чека, печати отчёта, открытие/закрытие смены, проверка связи, обновление конфигурации и загрузка ключей.