Pull to refresh

NFC + «Тройка» = «Мой проездной»

Reading time 6 min
Views 232K

Мой проездной, теперь и электронный

Доводилось ли вам слышать на эскалаторе объявление о том, что можно заблаговременно приобретать проездные билеты для того, чтобы не стоять в очередях у окошек, в которых служащие метрополитена продают проездные билеты?

Те, кто пользуется только наземным транспортом, вынуждены спускаться в метро, чтобы пополнить «Тройку» – согласитесь, не очень удобно.
С новым приложением «Мой проездной» от Банка Москвы больше действительно не придётся терять время в очередях, или, в очередной раз пытаясь зайти в метро, становиться перед фактом нулевого баланса на транспортной карте «Тройка».

Стоит отдельно отметить, что это действительно первое подобное приложение, позволяющее не только прочитать баланс любой транспортной карты (не только «Тройки», но и обычного билета с чипом, продающегося для городского наземного транспорта и метро), но и приобрести билет и сразу же записать его на имеющийся проездной.

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

Самые критические функции, связанные с привязкой банковской карты, проведением платежа по ней и работе с профилем клиента, были нами сделаны быстро, так как это отлаженный и стабилизированный функционал.

Что умеет «Мой проездной»

Android-приложение «Мой проездной» для держателей карт любого российского банка позволяет получить полный цикл услуги по пополнению баланса карты «Тройка»: от проверки баланса до записи на карту информации о купленном билете.
Те, кто пользуется только наземным транспортом, вынуждены спускаться в метро, чтобы пополнить «Тройку» – согласитесь, не очень удобно
Подобное приложение, позволяющее на мобильном устройстве в любое удобное вам время управлять состоянием и балансом транспортной карты, стало доступно рынку впервые.

Работает это следующим образом – если в вашем Android-смартфоне есть NFC-модуль (а здесь заранее стоит отметить тот факт, что не все смартфоны с поддержкой NFC аппаратно поддерживают бесконтактные чипы, использующиеся в «Тройке» – список проверенных устройств будет ниже), то с помощью «Моего проездного» вы сможете купить и записать на «Тройку» любой билет действующего тарифного меню: «Единый», «ТАТ» на 1-60 поездок, «90 минут» или проездной на 30, 90 и 365 дней.

Естественно – все покупки не облагаются никакой комиссией.

Помимо этого можно с банковской карты напрямую пополнить баланс Электронного кошелька, а также прочитать текущий баланс билетов ГУП «Мосгортранс» (наземный транспорт) и ГУП «Московский метрополитен» (метро), которые записаны на вашу «Тройку».


Само приложение, уже доступное в магазине Google Play, является дальнейшим развитием «Единой платежной платформы» Банка Москвы. Уже сейчас в эту экосистему входят приложения «БМmobile.Кошелёк», «Переводы» и «Квартплата», а также городское приложение «Парковки Москвы». При этом используется единая учётная запись пользователя для всех приложений, что удобно не только в том случае, если вы являетесь клиентом непосредственно банка.

Поэтому и регистрация требуется только в том случае, если у вас ещё нет учётной записи в одном из вышеупомянутых приложений. А сделав её один раз, вы сможете использовать привычные вам логин и пароль в других приложениях Банка Москвы. Согласитесь – это удобно.

При решении задач, связанных с разработкой интеграционного слоя между смартфоном и бесконтактной картой, нами использовались стандартные системные библиотеки, лицензированные владельцем технологии – компанией «NXP Semiconductors». Основной проблемой стало собственно определение типа NFC-контроллера.

Изначально предполагалось использовать стандартные функции, позволяющие при старте аппликации определять – поддерживает ли установленный NFC-контроллер взаимодействие с картами стандарта «Mifare Classic» или нет. В итоге пришлось модифицировать уже согласованный дизайн, поскольку выяснилось, что довольно большой процент бюджетных китайских смартфонов, оборудованных NFC-контроллером, всё-таки прекрасно поддерживает взаимодействие с «Тройкой», но при этом системная функция возвращала совершенно иной ответ.

Вообще, читая отзывы на маркете, начинаешь понимать несущественные на первый взгляд упущения. Так, например, многие думают, что бумажные билеты и карта «Тройка» – это одно и то же, и сильно удивляются, почему их карту приложение «Яндекс.Метро» читает, а приложение «Мой проездной» – нет. На самом деле, это совсем не так, «бумажные» билеты реализованы на носителях стандарта «Mifare Ultralight», а карта «Тройка» (на самом деле многоразовый носитель) использует стандарт «Mifare Classic», а это две большие разницы. Мы, кстати, в ближайших релизах поддержим чтение баланса «бумажных» билетов.

В целом поддержка работы с бесконтактными картами посредством мобильного телефона – это отдельная предметная область, поскольку питание бесконтактных карт реализовано на принципах индуктивности (чтобы было понятнее – вспомните обычный трансформатор, в нашем случае карт-ридер – это одна половинка трансформатора, а бесконтактная карта – другая половинка), и во многом это больше инженерные вопросы, чем собственно прикладное программирование.

Например, если чехол вашего смартфона поддерживает бесконтактную зарядку, то вероятность того, что даже при «правильном» NFC-контроллере будут читаться бесконтактные карты, не сильно высока. Дополнительные проблемы – это так называемые дуальные карты (т.е. карты, поддерживающие работу по контакту и бесконтакту), данные карты не только требовательны к питанию, но и зачастую требуют реализации для них отдельных алгоритмов взаимодействия.

Покупка поездок и пополнение «Тройки»

И всё-таки, пожалуй, одной из самых востребованных функций приложения «Мой проездной» является возможность электронной покупки билетов и их последующей записи на карту «Тройка».
Само приложение, уже доступное в магазине Google Play, является дальнейшим развитием «Единой платежной платформы» Банка Москвы
В самом приложении можно приобрести любой билет на городской транспорт требуемого номинала.

При этом вы можете не волноваться за безопасность собственных транзакций, так как приложение использует технологию 3D Secure для защиты всех осуществляемых с помощью него покупок.

Данные привязанной карты сохраняются в зашифрованном виде в базе данных «Единой платежной платформы» Банка Москвы. В интерфейсе между приложением и «Платформой» данные карты не передаются ни в каком виде.

Сама «Платформа» сертифицирована по стандарту PCI DSS, а компания-оператор «Платформы» обслуживает не только Банк Москвы, но и Сбербанк России, Альфа-Банк и компанию Аэрофлот в части электронной коммерции.

Дополнительно следует отметить, что каждая финансовая транзакция передается по закрытому на программно-аппаратном уровне каналу и дополнительно маскируется с использованием аппаратных средств шифрования.

Приобретя таким образом билет, вы можете сразу же записать его либо на транспортную карту «Тройка», либо на аналогичное транспортное приложение.

Также, в случае, если ваш смартфон не может считать данные с транспортной карты, вы всё равно можете совершить «отложенное» пополнение «Тройки» в режиме электронного кошелька.
Справка: Транспортная карта «Тройка» в режиме электронного кошелька позволяет пополнять баланс любой суммой средств и оплачивать таким образом проезд по цене чуть дешевле покупки отдельных проездных на каждый отдельный вид транспорта.

История покупок и операций удобно отображается в приложении.

Наконец, для вашего же удобства можно привязать неограниченное количество банковских карт любых российских банков (за небольшим исключением в виде карт «Momentum Maestro» и «MasterCard Maestro» Сбербанка России) для быстрого пополнения «Тройки» в дальнейшем.

К тому же, привязанную в одном приложении карту будет «видно» и в любом другом приложении, выпущенном в рамках «Единой платежной платформы» Банка Москвы.
Сам цикл именно покупки билета и перевода его в электронную форму следующий:
Приложение взаимодействует с «Единой платежной платформой» Банка Москвы, которая в свою очередь имеет интерфейс взаимодействия со шлюзом Мосгортранса и интерфейс взаимодействия с процессинговым центром Банка Москвы.
По отложенному пополнению Платформа взаимодействует с ПАК ЦОТТ метрополитена.
А дальше всё просто: считал сектора карты «Тройка», отдал информацию в шлюз, получил обратно список билетов, возможных к покупке для данной карты, выбрал конкретный билет, заплатил, записал билет на карту. Если запись по каким-то причинам не прошла – деньги автоматом возвращаются клиенту.

«Тройка» с социальным элементом


Наконец, две «последние» по своей значимости функции скорее косметические, нежели функциональные.

В приложении «Мой проездной» вы можете привязать к своей учётной записи аккаунты социальных сетей Facebook и ВКонтакте для авторизации с использованием данных ID-систем.

А любители прекрасного смогут установить на собственный аватар любую картинку с телефона или сделать селфи специально для «Моего проездного».
Список поддерживаемых устройств:

Sony Xperia ZR
Sony Xperia Z
Sony Xperia Z2
Sony Xperia Z3
Sony Xperia Z3 Dual
Sony Xperia М1
Sony LТ25i/Xperia V
LG Optimus 3D Max
LG Optimus G
LG Optimus G Pro
LG Optimus 4X HD
LG Optimus L5
LG Optimus L7
LG Optimus LTE
LG Optimus Vu
LG Optimus Vu 2
LG Prada 3.0
Samsung Galaxy Nexus I9250
Samsung Galaxy S5 G900
Samsung Galaxy Note II
Samsung Galaxy SIII GT-I9300
Samsung Galaxy Core
Samsung Galaxy Core DUOS
Lenovo Sisley S90
Lenovo VIBE Z2
Lenovo P780
HTC One (Android Kitkat)
HTC Desire 610
HTC One X (Android Kitkat)
ALCATEL ONETOUCH POP S9
HUAWEI ASCENT P7
Acer Liquid Express
Acer Liquid Glow
Asus Padfone 2
Motorola Droid Razr
Motorola Droid Razr HD
Motorola Droid Razr Maxx HD
Google Nexus 7 NXP PN65
Panasonic ELUGA
ZTE Grand S
ZTE PF200
ZTE Grand X
ZTE Render
ZTE Kis
ZTE Sprint Flash

Tags:
Hubs:
+23
Comments 71
Comments Comments 71