Пополнить «Тройку» теперь можно через NFC без желтого валидатора / Новости города / Сайт Москвы

Applepay: плюсы и минусы

К преимуществам сервиса от известной компанииотносят:

  1. Удобство — больше не нужно таскать с собой кредитки или наличные, чтобы оплатить товар. Нужен лишь мобильный телефон. При потере смартфона добавление карточек на новый займет несколько минут. Переоформление утерянных кредиток может растянуться на несколько дней.
  2. Умная система сортировки — все банковские карточки будут видны в 1 приложении вне зависимости от организации, которая выдала вам кредитку. К Apple Pay можно привязать карту «Тройка», Тинькофф Black, универсальную от Сбербанка и т.д.
  3. Постоянное развитие — компания подумывает о возможности оформления кредита через Wallet. Это одна из функций, которые корпорация планирует добавить в приложение.
  4. Выгодно — благодаря эппл пэй можно мониторить свои затраты, оптимизировать расходы. В грамотных руках приложение — мощный инструмент для контроля средств и развития финансовой грамотности.
  5. Интуитивно понятный — дизайнеры компании постарались сделать оформление как можно более простым для обычного пользователя. Разобраться можно за несколько минут.
  6. Бесплатность — приложение полностью бесплатно и не требует каких-либо взносов. Остерегайтесь мошенников, которые могут вымогать деньги под видом установки Apple Wallet на ваш смартфон.

Известные недостатки Apple Pay:

  1. Не всегда под рукой — мобильные телефоны могут разрядиться в самый неподходящий момент. Смартфон также можно просто потерять, тогда все карты придется привязывать заново.
  2. Подойдет не всегда — если банковский терминал не принимает бесконтактные платежи от ApplePay, придется воспользоваться привычной карточкой.
  3. Уязвимости — технология новая, но ее перспективность омрачает возможность взлома и траты средств с карточки. Компания постоянно совершенствует механизмы защиты, но опытные хакеры все равно могут воспользоваться дырами.
  4. Непонимание людей — в небольших городах консерватизм населения может вынуждать пользоваться обычными банковскими картами или наличными. Страх также подкрепляется багами и другими слабыми местами перспективной разработки.

Возможна ли оплата в метро с айфона

Платежная система Эппл Пэй появилась в России в 2022 году. Но возможность оплаты проезда в метро с ее помощью стала доступной пользователям только в апреле 2022 года. И то, с некоторыми ограничениями:

  • расплачиваться через Apple Pay можно только в метрополитене Москвы и Санкт-Петербурга;
  • оплату поддерживают только турникеты с датчиками квадратной формы.

Но это в любом случае большой шаг вперед. Кроме того, ограничения с лихвой нивелируются преимуществами использования платежного сервиса:

  • расчет с помощью Apple Pay можно производить не только на турникетах, но и в кассах и терминалах метрополитена;
  • необходимые для пользования Эппл Пэй устройства установлены на всех станциях метрополитена;
  • при покупке билета данным способом действует 20%-я скидка на проезд.

В ближайшем будущем планируется введение поддержки эппловского платежного сервиса в метрополитенах Екатеринбурга и Новосибирска. На момент написания статьи (начало 2022 года) такой возможности нет, но советуем жителям этих городов следить за новостями.

Оплата метро Apple Pay происходит точно так же, как и оплата любой другой покупки с помощью этого платежного сервиса. Если вы пользуетесь айфоном или айпадом, алгоритм действий будет таким:

  • откройте приложение Wallet;
  • выберите нужную карту;
  • поднесите гаджет к датчику турникета или терминалу в кассе;
  • приложите палец к сканеру отпечатков;
  • дождитесь подтверждения транзакции.

Для платежа с помощью iWatch нужно будет дважды нажать на кнопку сбоку корпуса часов и поднести их к считывающему устройству на турникете или в кассе так, чтобы экран часов был обращен к устрйоству. Как только проезд будет оплачен, часы завибрируют, сообщая об успешном проведении операции.

Как зарегистрировать карту «тройка» в программе лояльности «город»

Эта система создана в 2020 году и предназначена для накопления скидок и бонусов. Их впоследствии можно потратить на оплату услуг в кафе и ресторанах, магазинах, театрах и даже на стойках велопроката. На данный момент программа «Город» насчитывает более 300 онлайн-партнеров и 5000 магазинов в Москве и МО.

Пройти регистрацию в системе можно через ее официальный портал или приложение, доступное в AppStore и Google Play Market.

Последний вариант удобнее: здесь сразу отображается баланс карты, количество баллов, уровень пользователя, свежие акции, доступные предложения со скидкой.

https://www.youtube.com/watch?v=6a0WrxghwLw

Технические требования к приложению:

  • Apple – iOS старше 10.0. Возможна установка на iPhone, iPad, iPod Touch.
  • Android – версия системы выше 5.0.

Принцип взаимодействия с приложением «Город»:

  1. После запуска и представления основных возможностей (предъявление в магазинах, соотношение бонусов и рублей) появится кнопка «Регистрация» – нажимайте на нее.
  2. Для проведения процедуры потребуется ввести 10-значный номер «Тройки». Также внизу доступен вариант входа через имеющийся аккаунт.
  3. Для проведения привязки (подтверждения законного использования карты) на следующем шаге появится окно с просьбой указать 2 станции метро, посещенных в последнем месяце. После их введения внизу появится кнопка «Далее».Как привязать карту «Тройка» к телефону
  4. Для привязки карты также потребуется номер телефона – на него придет проверочный код. Сюда же будет приходить пароль во время обмена бонусов на скидку при покупке или оплате услуги.
  5. Дальше заполняются обычные персональные данные: ФИО, дата рождения, пол. Обязательно указывается и актуальная электронная почта. Как привязать карту «Тройка» к телефону
  6. После этого программа предложит создать 4-значный пароль. Он же будет использоваться для входа в личный кабинет на официальном портале «Города».

Как проверить баланс счета

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

  1. Желтый терминал. Практически на всех станциях московского метрополитена есть специальные желтые терминалы, которые крепятся ближе к кассам. Пластиковый носитель просто прикладывается к сканеру терминала и через определенное время на экран выводится подробные сведения с карты.
  2. Официальные приложения от разработчиков: «Тройка Проверка баланса», «Транспортные карты Москвы», «Мой проездной». Все владельцы мобильных гаджетов Android, iOS со встроенной функцией NFC, смогут быстро произвести проверку баланса через установленное приложение. Для этого нужно приложить карту к задней панели смартфона, после чего на экран телефона выводятся все необходимые сведения с карты.
  3. Опция «Мобильный билет». Многие современные гаджеты поддерживают универсальную функцию «Мобильный билет», подключить которую легко в любом официальном салоне связи оператора. Проверка баланса производится через главное меню, в разделе «Баланс».
  4. SMS-сообщение. Мобильные операторы МТС, Билайн и Мегафон ввели для своих абонентов специальный короткий номер для проверки баланса и оставшегося количества поездок по действующему абонементу. На номер 3210 посылается СМС со словом – баланс – после чего абонент получает интересующие сведения в ответном SMS-сообщении.

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

Контроллер борей

Контроллер — это устройство, на которое передается идентификатор карты от считывателя. Оно хранит базу данных идентификаторов карт и решает, кого пропускать, а кого нет, управляя замком двери.

Часто контроллеры СКУД состоят из нескольких блоков управления и компьютера с базой данных. Мы принципиально не хотели держать отдельный компьютер и искали компактное решение в виде одного устройства, которым можно управлять через API для интеграции с Telegram-ботом.

Поиск такого устройства занял больше месяца, пока я не наткнулся на старую статью на хабре «Обзор СКУД с бесплатным программным обеспечением». В комментариях пользователь rgmih упомянул, что их компания производит именно такой контроллер.

Так мы нашли контроллер БОРЕЙ от компании ИТРИУМ.

Плата контроллера БОРЕЙ в настенном корпусе

Устройство работает под управлением Linux на базе ARM-процессора.

Основные достоинства устройства, которые редко можно встретить у других контроллеров:

  • Полностью автономный — все функции выполняет одно устройство. Для управления не нужно дополнительных программ или отдельного компьютера. База данных хранится на SD-карте. При отключении интернета контроллер продолжит работать.
  • Web интерфейс и REST API — возможность управлять контроллером через браузер и интегрировать с Telegram-ботом через API. Позволяет управлять пропусками удаленно.
  • Подключение по Ethernet — устройство подключается в IP-сеть. Имеет встроенный коммутатор на 2 порта.
  • Идентификаторы произвольной длины до 64 бит — возможность интегрировать контроллер с нестандартными идентификаторами разной длины. Позволяет иметь гибридную систему с идентификаторами разной длины.

В момент считывания карты, считыватель передает прочитанный идентификатор карты на контроллер по протоколу Wiegand. Контроллер ищет идентификатор в своей базе данных и решает, можно ли этому идентификатору открывать дверь или нет.

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

Если доступ запрещен, контроллер посылает сигнал индикации на считыватель, и тот горит красным цветом и пищит о том, что доступ не разрешен.

Контроллер подключается в сеть c помощью Ethernet-кабеля. Начальная настройка требует только задать IP-адрес устройства. Никакого программного обеспечения, помимо браузера, не требуется.

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

Создание нового пропуска в веб-интерфейсе контроллера БОРЕЙ

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

Можно ли привязать «тройку» к iphone?

Чтобы привязать «Тройку» к смартфону нужно набрать короткий номер 3210. Важно, чтобы мобильное устройство работало на операционной системе iOs или Android. Привязка позволит не только проверять счет карты и пополнять его, но и блокировать карточку при утере, а также восстанавливать при необходимости.

Для управления электронным кошельком для смартфонов на платформе Андроид разработано приложение «Мой проездной», которое позволяет использовать мобильное устройство, как транспортную карту.

Привязать карту к Iphone на операционной системе iOS возможно. После регистрации «Тройки» через приложение «Тройка. Пополнение карты Тройка», созданное компанией Intervale, можно будет пополнять счет, и проверять его состояние. К сожалению, данным мобильным устройством нельзя будет пользоваться как полноценной картой, так как даже при поддержке технологии NFC их функционал является несколько ограниченным.

Пополнение “Тройки” NFC осуществляется двумя способами: через терминал оператора Мегафон, Элекснет, Аэроэкспресс, валидатор или в приложении “Метро Москвы”.

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

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

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

Прибор состоит из чипа, одна сторона которого закрепляется на симке, а вторая устанавливается под батареей, и антенны, монтируемой непосредственно на батарею. Обратите внимание, что NFC нельзя установить в телефоны, которые оснащены несъемной батареей.

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

В целом пополнение при помощи установленного NFC-соединения занимает 1-2 минуты. Согласитесь, что это существенно облегчает жизнь, ведь вам не придется стоять в километровых очередях к терминалу в метро или окошку операциониста. Сначала нужно подключить NFC, и делается это в различных устройствах по-разному.

В частности, для обычных смартфонов на базе Андроид алгоритм выглядит так:

  • зайти в «Параметры» или «Настройки»;
  • выбрать раздел «Подключение устройств»;
  • нажать на клавишу «NFC».

Включая клавишу, вы разрешаете телефону обмениваться данными с другими устройствами. Обратите внимание, что с включенным соединением вы также можете оплачивать покупки в магазине и выполнять другие задачи.

После включения модуля происходит непосредственное пополнение. Понадобится:

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

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

Какие имеются способы зарегистрировать карточку на свой номер?

Чтобы “Тройка” стала доступна в мобильном телефоне, нужно осуществить её привязку. Для этого нужно пройти регистрацию на сайте с указанием персональных сведений и телефонного номера.

https://www.youtube.com/watch?v=PWmWZVtZB8M

Важно! Регистрационный процесс даёт возможность оформить карту как именную. Это позволит в случае утери или поломки пластика быстро и без проблем восстановить его. Разумеется, при этом баланс средств останется неизменным и доступным клиенту.

Пройти регистрацию можно на сайте или в мобильном приложении. Об этом читайте ниже.

При всех плюсах на сегодняшний момент “Тройка” не совершенна. Её недоработки обнажают не самую лучшую защищённость. Ввиду этих причин не прекращается работа по улучшению продукта – с тем чтобы избавиться от минусов карты.

Пополнение через установленное на телефон мобильное приложение возможно благодаря платёжной системе Payler. Чтобы провести операцию, необходимо сначала в программе ввести номер карты и установить сумму. Платёж проводится с помощью любого банковского пластика, работающего на системах Visa или MasterCard.

Помимо касс в метро, платёжных аппаратов или мобильного приложения существует ещё один путь перевести деньги на “Тройку”. Непосредственно с телефона через сервис SMS.

Обработка pdol (processing options data object list)

В ответ на запуск платежного приложения карта может затребовать от считывателя PDOL (Processing Options Data Object List). Это набор параметров POS-терминала — поддерживаемые протоколы и стандарты, валюта, в которой будет производиться расчет, дата, случайное число для криптографии, и так далее.

Список PDOL может различаться у разных карт. Общее число параметров PDOL — несколько десятков. Полный список параметров PDOL можно посмотреть здесь: eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags.Сложность состоит в том, что список PDOL у разных карт, даже выпущенных одним банком в разное время, может существенно различаться. Некоторые карты запрашивают два-три параметра, другие — десяток.

Это очень важный момент, так как некоторые карты могут отказаться работать без корректного ответа PDOL. Поэтому, для получения PAN-номера от всех карт, нам придется прикинуться настоящим POS-терминалом. Напомню, что единственной нашей целью является получения PAN-номера. Поэтому попытаемся сформировать максимально простой, но при этом корректный ответ PDOL.

Ответ карты на старт платежного приложения. Содержит запрос PDOL.

'6F 31 84 07 A0 00 00 00 03 10 10 A5 26 9F 38 18 9F 66 04 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C 01 9F 37 04 BF 0C 08 9F 5A 05 60 08 40 06 43 90 00'

Пропустим этот ответ через

парсер

Видно, что значение PDOL начинается с маркера 9F38 и равно 9F66049F02069F03069F1A0295055F2A029A039C019F3704. Парсер emvlab.org не умеет парсить значения PDOL, поэтому воспользуемся программой для Android-смартфонов Credit Card Reader.

Вот тот же ответ, обработанный более умным парсером. Видно каждый параметр PDOL:

Данный парсер не скрывает байт длины после маркера, как это делает emvlab.org. Поэтому последний байт каждого маркера следует читать как длину.

Разберем запрос PDOL подробнее

9F 38 18 // Маркер начала PDOL. Длина 18 (24 байта) 
 9F 66 (длина 04) // Terminal Transaction Qualifiers (TTQ). Параметры платежного терминала 
  9F 02 (длина 06) // Сумма списания
   9F 03 (длина 06) // вторая сумма
   9F 1A (длина 02) // Код странцы в формате ISO3166-1
   95 (длина 05) // Terminal Verification Results
    5F 2A (длина 02) // Код валюты, в которой работает терминал, в формате ISO4217
     9A (длина 03) // Дата в формате YYMMDD
      9C (длина 01) // Тип транзакции 
       9F 37 (длина 04) // Случайное число для криптографии

Подробное описание всех возможных параметров PDOL можно найти в

EMV Contactless Specifications Book C-1/2/3 Kernel 1/2/3 Specification.

Карта ожидает ответ на PDOL в том же порядке, в котором следуют запросы, и ровно той длины, которая указана после каждого параметра PDOL. Если сложить длину всех параметров (последний байт каждого параметра), получится 33 байта. Значит карта ожидает от считывателя PDOL длиной в 33 байта.

Так как мы не собираемся списывать с карты деньги, наша задача — сформировать самый простой из возможных ответ PDOL, который удовлетворит карту. Если наш ответ не понравится карте, она ответит кодом 6985 Conditions of use not satisfied.

Экспериментальным путем я выяснил, что почти на все запросы PDOL можно ответить нолями, кроме Terminal Transaction Qualifiers (TTQ). В случае с VISA, нам нужно убедить карту в том, что терминал соответствует спецификации VCPS 2.1.1. Для этого ответ на TTQ должен выглядеть так:

'F0 00 00 00'

Подробнее про формат TTQ

здесь

Карты MasterCard, которые мне довелось испытать, позволяли игнорировать PDOL и отдавали PAN-номер без корректного ответа на PDOL.

Вот как будет выглядеть минимальный рабочий ответ на запрошенный выше PDOL:

'80A80000238321F0000000000000000000000000000000000000000000000000000000000000000000'
 80 A8 00 00 // Команда GET PROCESSING OPTIONS (GPO)
  23 // длина всего запроса (35 байт)
   83 // маркер PDOL-ответ
    21 // длина PDOL-ответа (33 байта)
     F0 00 00 00 // Terminal Transaction Qualifiers (TTQ)
      00 00 00 00 00 00 // Сумма списания
       00 00 00 00 00 00 // Вторая сумма
        00 00 // Код страны считывателя
         00 00 00 00 00 // Terminal Verification Results (TVR)
          00 00 // Валюта
           00 00 00 // дата 
            00 // тип транзакции
             00 00 00 00 // Случайное число 

Если наш ответ удовлетворил карту, мы получим сообщение, начинающееся с маркера

с кодом SW2=9000. Этот ответ может содержать нужный нам PAN-номер, а может и не содержать. (офигеть)

Оплата проезда

Apple Pay с Mastercard или Visa: простой и удобный способ оплаты.
Оплатить проезд в метро, МЦК и на МЦД с помощью Apple Pay можно в кассах, автоматах по продаже билетов, а также прямо на турникетах.

Оплата с iPhone:

Убедитесь, что вы подключили свою карту Mastercard или Visa к Apple Pay (c помощью приложения Wallet на вашем iPhone).

1. Чтобы быстро оплатить поездку метро с Apple Pay, достаньте ваш iPhone до того, как подойдете к турникету. Разблокируйте телефон, дважды нажав на кнопку «Домой».

2. Появится интерфейс Apple Pay. Теперь еще раз прикоснитесь к кнопке «Домой» для сканирования отпечатка пальца.

3. Поднесите телефон к турникету для оплаты. Вы услышите звуковой сигнал, подтверждающий, что информация о вашем платеже была отправлена.

Оплата с Apple Watch:

Убедитесь, что вы подключили свою карту Mastercard или Visa к Apple Pay на ваших Apple Watch (c помощью приложения Wallet на вашем iPhone).

1. Дважды нажмите боковую кнопку и поверните Apple Watch дисплеем к турникету.

2. Вы услышите звуковой сигнал подтверждающий, что информация о вашем платеже была отправлена.

Купить билет с помощью ApplePay можно на всех станциях метро и МЦК.

Безопасность и конфиденциальность лежат в основе Apple Pay. Когда вы добавляете кредитную или дебетовую карту в Apple Pay, сам номер карты не хранится ни на устройстве, ни на серверах Apple. Вместо этого присваивается уникальный номер учётной записи устройства, который шифруется и безопасно хранится в чипе «Безопасный Элемент» вашего устройства. Каждая транзакция авторизуется благодаря уникальному одноразовому секретному коду, который генерируется динамически.

Apple Pay позволяет очень просто совершать оплату поездки: больше нет необходимости покупать билеты или пополнять транспортные карты. Apple Pay позволяет оплатить поездку, задействуя iPhone 6 и более новые модели, а также Apple Watch. Для работы Apple Pay не требуется интернет-соединения на вашем iPhone или Apple Watch, а значит, транзакции можно осуществлять даже там, где 3G соединение нестабильно или отсутствует.

Оплата поездки на специально оборудованном турникете в метро, монорельсе, МЦК и МЦД зона «Центральная» или наземном транспорте — 46 ₽

Оплата поездки на специально оборудованном турникете в метро, монорельсе, МЦК и МЦД зоны «Центральная» и «Пригород» — 54 


*Расплачиваться с помощью ApplePay можно с iPhone SE, iPhone 6 и более новых моделей, а также с AppleWatch.

Пополнение и запись на карту тройка с помощью смартфона с nfc-меткой

Преимущества

  • удобство пользования – все билеты хранятся в одном месте, на карте;
  • эффективность – считывание с карты «выгодных» билетов, то есть проезд по спецтарифам в первую очередь;
  • удобство пополнения – масса доступных способов при минимуме затраченного времени;
  • защищенность – баланс на карте не сгорает, сумма может быть «привязана» к номеру телефона;
  • комфорт – больше нет необходимости стоять в очередях и разменивать наличные.
  • Уже появилась в продаже единая транспортная карта Тройка-Стрелка. Она объединит функционал обеих карт. Это значит, что по ней можно будет ездить на общественном транспорте Москвы и Московской области, включая маршрутки и электрички, ходить на каток в Парк Горького и ВДНХ, а также в планетарий и зоопарк. Когда проект будет введен, карты Тройка и Стрелка «подружатся».
  • В автобусе картой нельзя пользоваться сразу же, «друг за другом» – нужно ждать три минуты, прежде чем другой пассажир сможет приложить ее к датчику. А вот в метро, напротив, по карте может пройти в порядке очереди целая группа людей.

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

  • Некоторые пользователи отмечают, что карта размагничивается – правда, ее можно сдать на экспертизу, заменить новой, однако на это уходит время. Другие пассажиры упоминают, что с неисправной карты списываются удвоенные суммы на одну поездку.
  • В будущем карта «Тройка» может появиться на различных носителях, элементами которых могут быть банки, мобильные компании и другие партнеры столичного Метрополитена.
  • В скором времени проездные билеты ГУП «Мосгортранс» могут быть также записаны на карте «Тройка».
  • Тарифы «Тройки» используются и на Монорельсовой транспортной системе.
  • Средства, размещенные на балансе карты, не подлежат обмену и возврату.

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

Преимущества и возможности сервиса

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

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

С помощью «Мобильного билета» можно оплатить не только проезд в наземном муниципальном транспорте, но и также заплатить за проход через турникеты Московского метрополитена.

Также путем скачивания специального софта с Google Play или App Store, в зависимости от операционной системы мобильного устройства, пользователь получит возможность оплаты телефоном билетов во многие столичные музеи.

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

При этом с баланса мобильного номера будет списана сумма, эквивалентная стоимости входного билета в этот музейный комплекс. Одна карта оплачивает один билет. Правда, стоит уточнить, что таким способом можно приобрести только один входной билет.

Аналогичным образом можно оплатить проход в «Лунариум».

Также технология бесконтактной оплаты используется музеем советских игровых автоматов. В этом заведении смартфоном можно приобрести один детский и один взрослый проходной билет.

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

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

Старт платежного приложения — select aid

В ответ на SELECT PPSE карта должна вернуть FCI (File Control Information) со списком приложений, существующих на карте. Помимо платежных приложений (VISA, MasterCard, AmericanExpress) карта может содержать неплатежные приложения, используемые для других нужд.

Ответ карты VISA на SELECT PPSE

'6F 23 84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 11 BF 0C 0E 61 0C 4F 07 A0 00 00 00 03 10 10 87 01 01 90 00'

Для удобства проанализируем ответ с помощью онлайн-парсера формата TVL

emvlab.org/tlvutils/

. Тот же ответ карты VISA, обработанный парсером:

Из всего этого нас интересует только идентификатор платежного приложения (AID). В данном случае, это значение A0000000031010, означающее Visa International.

AID помечается маркером 4F. Вторым битом после маркера следует длина данных, в нем содержащихся. Несмотря на то, что длина AID может варьироваться от 5 до 16 байт, в большинстве случаев она равна 7 байтам. Поэтому для простоты поиска AID в ответе, мы будем искать маркер 4F 07 и считать 7 байт после него как AID.

Такой подход очень примитивный и может не работать в случаях, если длина AID будет другой, но для нашей задачи это не важно, так мы скорее всего никогда не столкнемся с картами, отличными от Visa и MasterCard. Поэтому наш самодельный парсер PPSE-ответа можно упростить до такой логики: если ответ начинается с 6F, заканчивается на 90 00 и содержит внутри последовательность 4F 07, ответ считается корректным.

Полный список AID: eftlab.co.uk/knowledge-base/211-emv-aid-rid-pix

Некоторые популярные AID

A0000000031010 Visa International
A0000000032020 Visa International
A0000000041010 Mastercard International
A0000000043060 Mastercard International United States Maestro (Debit)

Получив значение AID, его нужно запустить командой SELECT. В данном случае мы запускаем приложение Visa International, полученное из ответа на PPSE SELECT

APDU-команда SELECT AID

'00 A4 04 00 07 A0 00 00 00 03 10 10'
  00 A4 04 00 // команда select 
   07 // длина command data (7 байт)
    A0 00 00 00 03 10 10 // AID Visa International

Тройка. пополнение и проверка

Во-первых

, проверьте, нет ли обновлений приложения. Возможно, ситуация исправлена в новых версиях.

Во-вторых, убедитесь, что Вы точно прикладываете карту «Тройка» к NFC-антенне.

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

На чувствительность антенны и надежность считывания может влиять чехол (снимите его). Причем, бывает случаи, что читаться в чехле карта может хороша, а записывать не получается (потому что мощность сигнала для чтения и записи – разные).

В-третьих, убедитесь, что Вы убираете карте «Тройка» только после того, как она была прочитана.

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

Если появилось сообщение, что данные на карты прочитать не удалось, нажмите «ОК» и попробуйте снова.

Кроме того, на некоторых устройствах наблюдаются аппаратные и программные ошибки, которые приводят к нестабильному чтению карт (ошибки в NFC-модуле, неправильно настроенная антенна, ошибки в прошивке).

Приложение здесь ни при чем: оно, упрощенно говоря, всего лишь получает данные со смартфона и отправляет данные на него.

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

Есть известные проблемы на некоторых устройствах. Мы даже написали соответствующие статьи и сняли видео об этом. Например:

Проблемы с Asus ZenFone Max Pro (M1 и M2)
Проблемы со смартфонами Samsung линейки S
Проблемы с Xiaomi Redmi Note 20 Pro (а также Mi 9T, K20 и т. д.)

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

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

Но с Вашей помощью мы можем сделать работу приложения лучше и удобнее. Давайте помогать друг другу, а не только требовать.

Читаем emv-карты на коленке

Читать EMV-карты можно любым NFC-ридером, поддерживающим передачу произвольных APDU-команд. Для этого не требуются промышленные сертифицированные ридеры, подойдет любой модуль для Arduino за $3

Чтобы изготовить прототип считывателя, мне потребовалось бегло изучить протокол EMV. Под спойлером — краткий разбор протокола EMV с примерами чтения на Arduino и компьютере.

Читаем банковские карты на коленке с примерами. (Много текста)

Для чтения EMV карт подойдут такие устройства:

Описанный ниже процесс не является корректной реализацией протокола EMV. Приведенные команды APDU содержат ошибки и нарушают рекомендации EMVco, из-за чего могут не работать с некоторыми картами.

Для изучения протокола EMV рекомендуется читать официальную документацию, которую я, к своему стыду, почти не читал.

Приведенные APDU-команды будут одинаковыми не зависимо от выбранного оборудования. Однако в случае с PC/SC ридером не нужно заботиться о низкоуровневых командах, настраивать модуляцию и т.д.

Я буду использовать программу SmartCard Scripter, в связке с PC/SC-ридером HiD Omnikey. Программа SmartCard Scripter имеет наиболее компактный pascal-подобный синтаксис из всего что я видел. Краткое описание синтаксиса infintuary.org/scs_tut.php

Для того чтобы послать произвольную APDU команду на карту, достаточно такого когда:

// Программа для чтения UID карты
begin
  APDU('FF CA 00 00 00');
end.

Начало коммуникации — команда select (ppse)

Официальное описание: EMV Contactless Specifications — PPSE and Application Management for Secure Element

Начало общения с EMV-картой всегда происходит с чтения файла PPSE (Payment System Environment) командой SELECT.

APDU-команда SELECT PPSE

'00 A4 04 00 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00'
  00 A4 04 00 // команда select 
   0E // длина command data (14 байт)
    32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 // command data 2PAY.SYS.DDF01
    00 // завершающий маркер

Старт платежного приложения — select aid

В ответ на SELECT PPSE карта должна вернуть FCI (File Control Information) со списком приложений, существующих на карте. Помимо платежных приложений (VISA, MasterCard, AmericanExpress) карта может содержать неплатежные приложения, используемые для других нужд.

Ответ карты VISA на SELECT PPSE

'6F 23 84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 11 BF 0C 0E 61 0C 4F 07 A0 00 00 00 03 10 10 87 01 01 90 00'

Для удобства проанализируем ответ с помощью онлайн-парсера формата TVL

emvlab.org/tlvutils/

. Тот же ответ карты VISA, обработанный парсером:

Как добавить карту Тройка в Apple Pay. Инструкция.

Из всего этого нас интересует только идентификатор платежного приложения (AID). В данном случае, это значение A0000000031010, означающее Visa International.

AID помечается маркером 4F. Вторым битом после маркера следует длина данных, в нем содержащихся. Несмотря на то, что длина AID может варьироваться от 5 до 16 байт, в большинстве случаев она равна 7 байтам. Поэтому для простоты поиска AID в ответе, мы будем искать маркер 4F 07 и считать 7 байт после него как AID. Такой подход очень примитивный и может не работать в случаях, если длина AID будет другой, но для нашей задачи это не важно, так мы скорее всего никогда не столкнемся с картами, отличными от Visa и MasterCard. Поэтому наш самодельный парсер PPSE-ответа можно упростить до такой логики: если ответ начинается с 6F, заканчивается на 90 00 и содержит внутри последовательность 4F 07, ответ считается корректным.

Полный список AID: eftlab.co.uk/knowledge-base/211-emv-aid-rid-pix

Некоторые популярные AID

A0000000031010 Visa International
A0000000032020 Visa International
A0000000041010 Mastercard International
A0000000043060 Mastercard International United States Maestro (Debit)

Получив значение AID, его нужно запустить командой SELECT. В данном случае мы запускаем приложение Visa International, полученное из ответа на PPSE SELECT

APDU-команда SELECT AID

'00 A4 04 00 07 A0 00 00 00 03 10 10'
  00 A4 04 00 // команда select 
   07 // длина command data (7 байт)
    A0 00 00 00 03 10 10 // AID Visa International

Обработка pdol (processing options data object list)

В ответ на запуск платежного приложения карта может затребовать от считывателя PDOL (Processing Options Data Object List). Это набор параметров POS-терминала — поддерживаемые протоколы и стандарты, валюта, в которой будет производиться расчет, дата, случайное число для криптографии, и так далее.

Список PDOL может различаться у разных карт. Общее число параметров PDOL — несколько десятков. Полный список параметров PDOL можно посмотреть здесь: eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags.
Сложность состоит в том, что список PDOL у разных карт, даже выпущенных одним банком в разное время, может существенно различаться. Некоторые карты запрашивают два-три параметра, другие — десяток.

Это очень важный момент, так как некоторые карты могут отказаться работать без корректного ответа PDOL. Поэтому, для получения PAN-номера от всех карт, нам придется прикинуться настоящим POS-терминалом. Напомню, что единственной нашей целью является получения PAN-номера. Поэтому попытаемся сформировать максимально простой, но при этом корректный ответ PDOL.

Ответ карты на старт платежного приложения. Содержит запрос PDOL.

'6F 31 84 07 A0 00 00 00 03 10 10 A5 26 9F 38 18 9F 66 04 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C 01 9F 37 04 BF 0C 08 9F 5A 05 60 08 40 06 43 90 00'

Пропустим этот ответ через

парсер

:

Как добавить карту Тройка в Apple Pay. Инструкция.

Видно, что значение PDOL начинается с маркера 9F38 и равно 9F66049F02069F03069F1A0295055F2A029A039C019F3704. Парсер emvlab.org не умеет парсить значения PDOL, поэтому воспользуемся программой для Android-смартфонов Credit Card Reader.

Вот тот же ответ, обработанный более умным парсером. Видно каждый параметр PDOL:

Как добавить карту Тройка в Apple Pay. Инструкция.

Данный парсер не скрывает байт длины после маркера, как это делает emvlab.org. Поэтому последний байт каждого маркера следует читать как длину.

Разберем запрос PDOL подробнее

9F 38 18 // Маркер начала PDOL. Длина 18 (24 байта) 
 9F 66 (длина 04) // Terminal Transaction Qualifiers (TTQ). Параметры платежного терминала 
  9F 02 (длина 06) // Сумма списания
   9F 03 (длина 06) // вторая сумма
   9F 1A (длина 02) // Код странцы в формате ISO3166-1
   95 (длина 05) // Terminal Verification Results
    5F 2A (длина 02) // Код валюты, в которой работает терминал, в формате ISO4217
     9A (длина 03) // Дата в формате YYMMDD
      9C (длина 01) // Тип транзакции 
       9F 37 (длина 04) // Случайное число для криптографии

Подробное описание всех возможных параметров PDOL можно найти в

EMV Contactless Specifications Book C-1/2/3 Kernel 1/2/3 Specification.

Карта ожидает ответ на PDOL в том же порядке, в котором следуют запросы, и ровно той длины, которая указана после каждого параметра PDOL. Если сложить длину всех параметров (последний байт каждого параметра), получится 33 байта. Значит карта ожидает от считывателя PDOL длиной в 33 байта.

Так как мы не собираемся списывать с карты деньги, наша задача — сформировать самый простой из возможных ответ PDOL, который удовлетворит карту. Если наш ответ не понравится карте, она ответит кодом 6985 Conditions of use not satisfied.

Экспериментальным путем я выяснил, что почти на все запросы PDOL можно ответить нолями, кроме Terminal Transaction Qualifiers (TTQ). В случае с VISA, нам нужно убедить карту в том, что терминал соответствует спецификации VCPS 2.1.1. Для этого ответ на TTQ должен выглядеть так:

'F0 00 00 00'

Подробнее про формат TTQ

здесь

.

Карты MasterCard, которые мне довелось испытать, позволяли игнорировать PDOL и отдавали PAN-номер без корректного ответа на PDOL.

Вот как будет выглядеть минимальный рабочий ответ на запрошенный выше PDOL:

'80A80000238321F0000000000000000000000000000000000000000000000000000000000000000000'
 80 A8 00 00 // Команда GET PROCESSING OPTIONS (GPO)
  23 // длина всего запроса (35 байт)
   83 // маркер PDOL-ответ
    21 // длина PDOL-ответа (33 байта)
     F0 00 00 00 // Terminal Transaction Qualifiers (TTQ)
      00 00 00 00 00 00 // Сумма списания
       00 00 00 00 00 00 // Вторая сумма
        00 00 // Код страны считывателя
         00 00 00 00 00 // Terminal Verification Results (TVR)
          00 00 // Валюта
           00 00 00 // дата 
            00 // тип транзакции
             00 00 00 00 // Случайное число 

Если наш ответ удовлетворил карту, мы получим сообщение, начинающееся с маркера

77

с кодом SW2=9000. Этот ответ может содержать нужный нам PAN-номер, а может и не содержать. (офигеть)

Поиск pan-номера

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

PAN-номер может содержаться в трех местах:

APDU-команды (что они значат вообще? Хз, нужно прочитать)

'00 b2 01 1c 00'
'00 b2 01 0c 00'
'00 b2 02 0c 00'
'00 b2 01 14 00'
'00 b2 02 14 00'
'00 b2 04 14 00'

И парсим все ответы на предмет маркеров

57 13

либо

5A 08

. Найденные 8 байт карты можно дополнительно чекнуть на контрольную сумму с помощью

Алгоритма Луна

.

Если номер валидный, берем его последние десять цифр.

В итоге наш примитивный алгоритм чтения PAN-номера можно изобразить в виде блок-схемы

Как добавить карту Тройка в Apple Pay. Инструкция.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *