Как добавить транспортную карту «Тройка» в систему мобильных платежей «Apple Pay»
Возможности Apple Pay не заканчиваются только на бесконтактной оплате покупок в супермаркетах. Благодаря приложению Wallet есть возможность применять цифровые версии проездных метро. Для этого необходимо всего лишь привязать «Тройку» в программе Wallet, идентифицировав личность отпечатком пальца.
Как добавить транспортную карту
Для того чтобы пользоваться Apple Pay, в метро расплачиваться при помощи данной технологии, для начала потребуется привязать карту. Чтобы добавить транспортную карточку в приложение Wallet, необходимо:
Важно! выбранная карточка будет работать в автоматическом режиме без код-пароль или Face ID.
Возможна ли оплата в метро с Айфона
Платежная система Эппл Пэй начала существование еще в 2016 году, но функция оплаты с ее помощью в метро стала возможной только в четвертом месяце 2019 года. Также есть ряд особенных моментов:
Система постоянно совершенствуется и можно отметить ряд преимуществ:
В ближайшее время планируется расширять количество городов, метрополитены в которых будут принимать бесконтактную оплату Apple Pay. Это позволит существенно экономить время, делая жизнь более комфортной.
Как оплачивать в метро через Apple Pay
Благодаря удобной услуге больше можно не иметь при себе карту «Тройка», а достаточно иметь при себе телефон. Оплатить поездку с поддержкой Эппл Пэй возможно у аппарата, в кассе, в специализированных автоматах.
Чтобы оплачивать трансфер картой «Тройка» при помощи Apple Pay, необходимо:
Сейчас оплатить поездку при помощи технологии возможно только в двух городах России – Москва и Санкт-Петербург.
Стоимость проезда по карте «Тройка» с Apple Pay
Стоимость трансфера составляет по аналогии с проездным «Кошелек». На МЦД действуют тарифы:
В течение 90 минут пересадки между метро бесплатны. Использование приложения «Wallet» абсолютно бесплатно. Оплачивается только стоимость самого билета.
Apple Pay Тройка – как объединить карту и платежную систему
Жители российской столицы и прилегающей к ней области пользуются услугами общественного транспорта ежедневно, постоянно приобретая билеты на проезд. Apple Pay «Тройка» — удобное решение для потребителей. Предлагаем разобраться, можно ли привязать карту к платежной системе
Что собой представляет карта?
Транспортная карта представляет собой пластиковый продукт, которым оплачиваются поездки в метрополитене, в пригородных электропоездах и в городском транспорте.
Приобретается она в кассах метро и в киосках Московского городского транспорта. Стоимость карты является ее залоговой ценой, которая вам вернется в случае сдачи пластика. Есть возможность для пополнения, сумма не «сгорает», максимальный предел – не более трех тысяч рублей. При использовании в транспорте списывается базовый тариф.
Разрешается приобретать проездные билеты по большей стоимости, не кладя на карту дополнительных денег. После оплаты вами стоимости проездного кассир записывает его на карту Тройка.
Баланс карты проверяется на терминале любой станции метро либо в личном кабинете официального сайта.
Конструктивно карта представлена чипом Mifare Plus, функционирующем в режиме SL 1. На оборотной стороне пластика нанесен номер из десяти цифр, используемый при удаленных пополнениях баланса Им же пользуются в качестве элемента для идентификации в СКУД.
Есть ли возможность добавить к Apple Pay?
Пользователи картой задаются вопросом, можно ли добавить Тройку в Apple Pay, чтобы использовать ее через мобильный телефон.
К сожалению, для транспортной карты такая возможность не предусмотрена, потому что сервис функционирует исключительно с системами VISA и MasterCard.
Карта Тройка к банковским продуктам не относится, и условиям, нужным для выполнения привязки к смартфону, не соответствует:
Отсюда следует, что картой приходится работать в натуральном варианте.
Проще говоря, привязать Тройку к Apple Wallet невозможно – вы всего лишь заполните в приложении соответствующие поля, но бесконтактная оплата проходить не будет.
Чтобы не использовать карту Тройка физически, приобретаются ее специальные версии в форме браслета или кольца. К сожалению, носить такие аксессуары при себе постоянно не всегда удобно, да и браслеты часто рвутся, потому что сделаны из некачественного материала.
Пополнение баланса карты через Apple Pay
Такая услуга возможна для пользователей мобильными телефонами, работающими на операционной системе Андроид. Владелец смартфона на базе iOS пополнит Тройку через Эпл Пей, активируя оплату валидатором метрополитена.
Есть возможность пополнения счета в онлайн-режиме. При этом телефон должен поддерживать функцию NFC. Зачислив денежные средства, приложите карту к смартфону, и счет пополнится дистанционно, через НФС-чип.
Какие прогнозы и перспективы?
К концу этого года ожидается выход цифровой версии Тройки в Эпл пей, с помощью которой пассажиры смогут оплатить услуги городского и областного транспорта Москвы. Для этого потребуется наличие смартфона.
Можно ли будет привязать карту Тройка к Apple Pay? Для этого достаточно ввести все данные в приложение для бесконтактной оплаты и идентифицировать себя сканированием пальцевого отпечатка, после чего приложить гаджет к сканеру турникета.
Тройка на операционке iOS начнет функционировать к концу года, и изготовитель даст точные инструкции, как добавить карту в приложение, пополнять ее баланс.
Кроме использования Apple Pay, разработчики транспортной карточки планируют поддержку продукта Google и Samsung.
Отпадет необходимость иметь при себе карту постоянно – оплата проезда пройдет, как за товары в торговом салоне.
Создатель транспортной карты ожидает выхода iOS 13, чтобы владельцы смартфонов смогли самостоятельно оцифровывать Тройку. Предполагается, что в новой операционной системе появится модуль ближних полей, облегчающий сканирование карты чипом NFC и сохранение данных в Wallet.
Нововведение сэкономит время.
Как устранять неисправности и сдавать карту Тройка?
Предположим, карта не обновляется в автоматическом режиме. Составьте заявление и сдайте продукт в кассу, чтобы его проверили. При выявлении неисправности вам выдается новая карта, на которую переносится баланс с вышедшего из строя пластика. Срок проверки и замены – до десяти рабочих дней.
Решив не пользоваться картой Тройка, верните ее в кассу метрополитена. Залоговая стоимость продукта, обеспечивающего оплату за проезд, возвращается вам в полном объеме.
Как добавить «Тройку» в Wallet на Iphone
Если кошелек забит различными картами, носить наличные не хочется и у вас есть айфон, то есть неплохой выход — привязать платежные инструменты в Apple Pay. Разберемся же, как добавить тройку в Wallet, какие преимущества и недостатки имеет приложение.
Описание и возможности мобильного приложения для Айфон
Приложение Wallet представляет собой хранилище, в котором располагаются различные карточки (банковские, магазинные, студенческие), талоны, купоны, удостоверения, билеты и др.
Чтобы пройти на сеанс в кино, подтвердить свою личность в учебном учреждении или заплатить за покупку, нужно всего лишь иметь настроенное приложение Валлет в своем айфоне или других гаджетах Эпл.
Системные требования для установки
Устанавливать Wallet не нужно. Приложение имеется по умолчанию во всех айфонах, у которых iOS 9 и выше.
Как привязать «Тройку» к мобильному телефону Айфон
Можно ли добавить «Тройку» в Wallet? Да, эта транспортная карта также может иметь место в Apple Pay.
Справка. В дальнейшем с помощью смартфона пользователь сможет в один клик оплатить проезд в Москве, а также приобрести билет в Зоопарк, музей, кино и пр.
Для того, чтобы добавить Тройку в приложение:
Если все в порядке, то карточка привяжется и ею можно будет пользоваться.
Как добавить платежную карту на Apple Watch
Если есть часы от Эпл, то можно привязать тройку и на них. Тогда не придется доставать телефон для проплаты, достаточно будет просто поднести руку с часами к терминалу.
После проверки введенных данных процедуру добавления карты можно считать законченной.
Добавить карту на ваш Mac
Может быть карта тройка не только в айфоне или часах, но и в ПК с Мас. Это даст возможность оплатить билет в музей или кино через интернет.
Для того, чтобы добавить карточку, нужно:
Имейте в виду! Платить можно будет исключительно через браузер Safari.
Почему нельзя просто подложить карту «Тройка» под чехол
На карточке «Тройка» присутствует НФС чип и некоторые хотят обхитрить окружающих — вставляют платежное средство под чехол, но результат не радует. Почему? Тут несколько факторов, которые доказывают малую эффективность работы карты в данном случае. Это:
Также расположение карточки под чехлом может привести к некорректной работе самого телефона. Нередко на экране всплывают различные окна, становится невозможным произвести блокировку экрана, выбивает ошибку в работе приложений и пр. Подобное никому не нравится и говорит лишь о том, что нужно немедля убрать «Тройку» подальше от телефона.
Все вышеперечисленные моменты убеждают пользователей не вставлять карточку под чехол.
Преимущества и недостатки приложения
Подключение Тройки в Apple Wallet — наилучшее решение. Плюсов приложение имеет предостаточно, к примеру:
Список преимуществ прельщает многих, но и от недостатков не уйти. Таковые есть всегда и везде и приложение Валлет не исключение.
Каждый сам решает для себя, удобно ли ему пользоваться тройкой через NFC и iPhone. Предварительно стоит взвесить все за и против.
Заключение
Тройка в Apple Pay — оптимальный вариант для обладателей айфонов последних моделей. В приложение можно добавить несколько карт и платить за товары и услуги смартфоном в один клик. Важно иметь под рукой хорошо заряженный телефон, в противном случае осуществить транзакцию не представится возможным.
Добавление транспортной карты в Apple Wallet
Добавив в приложение Wallet транспортную карту, можно оплачивать поездки в общественном транспорте с помощью Apple Pay.
Для оплаты проезда в общественном транспорте с помощью Apple Pay необходимо следующее.
Для добавления в приложение Wallet новой транспортной карты необходимо, чтобы в нем уже имелась подходящая платежная карта.
Добавление транспортной карты на iPhone или Apple Watch
Добавить транспортную карту в приложение Wallet можно на iPhone или Apple Watch.
Добавление транспортной карты на iPhone
Добавление транспортной карты на Apple Watch
При добавлении транспортной карты для нее может быть автоматически установлен экспресс-режим. Кроме того, в приложении Wallet можно пополнить баланс транспортной карты.
Возможности использования транспортной карты и ее доступность могут быть ограничены в зависимости от региона. Чтобы узнать, поддерживается ли в вашем городе или регионе добавление транспортных карт в приложение Wallet, обратитесь в транспортную компанию.
Добавление карт непосредственно на часах Apple Watch, управление которыми осуществляется при помощи функции «Семейная настройка», может быть невозможно.
Перенос физической транспортной карты в Apple Wallet
Если у вас есть физическая транспортная карта, вы можете перенести ее в приложение Wallet на iPhone или Apple Watch с сохранением баланса.
Перенос физической транспортной карты на iPhone
Перенос физической транспортной карты на Apple Watch
Если появляется ошибка (например, «Карта не обнаружена» или «Сбой добавления карты»), выполните следующие действия.
После переноса физической карты в приложение Wallet сама карта может перестать работать.
Использование транспортной карты в экспресс-режиме
Экспресс-режим позволяет быстро оплачивать поездки в общественном транспорте одним нажатием. При этом не нужно выводить устройство из режима сна, снимать блокировку или проходить аутентификацию с помощью Face ID, Touch ID или код-пароля.
При добавлении подходящей транспортной карты экспресс-режим может быть включен для нее по умолчанию. В качестве карты с активным экспресс-режимом можно выбрать подходящую транспортную или платежную карту.
Сведения об активации экспресс-режима на транспортной или платежной карте см. в этой статье.
Перенос транспортной карты между устройствами
Вы можете использовать транспортную карту только на одном устройстве в приложении Wallet. Если необходимо использовать карту на другом устройстве, перенесите ее (с iPhone на Apple Watch или между двумя iPhone).
Как переместить транспортную карту с iPhone на Apple Watch
Если вы не в пути, вы можете перенести карту обратно на iPhone с помощью приложения Apple Watch.
Используем Apple Pay и карту Тройка в качестве пропуска на работу
TL;DR В статье описывается процесс создания системы контроля доступа (СКУД), в которой в качестве идентификатора могут использоваться карты Тройка, любые бесконтактные банковские карты EMV, а также телефоны с Apple Pay и Android Pay. Управление системой происходит через Telegram-бота.
Основные задачи системы
Пожалуйста, не нужно больше карт!
— У вас уже есть наша карта?
— Пощадите…
Сейчас каждый хочет всучить вам свою карту: магазины, фитнес-клубы, парковки, бизнес-центры, VIP-скидки-баллы-накопления. Предлагать человеку носить с собой еще одну карту просто унизительно. А учитывая, что карты стандарта EM-Marine (125kHz), которые популярны в системах контроля доступа на территории СНГ, имеют толщину в три раза больше обычных ISO 7810 — это втройне унизительно.
Поэтому первое требование к нашей системе — никаких дополнительных карт.
Сравнение толщины карт Em-Marine и ISO7810
Помимо физических размеров, карты EM-Marine технологически отсталые. Такую карту можно легко клонировать с расстояния полуметра прямо из кармана прохожего.
Видео с демонстрацией: www.youtube.com/watch?v=qvIIUny4EWI
На видео показано считывание тонкой карты em4100 с расстояния 50см, толстые карты читаются с большего расстояния.
Все СКУД неудобные
Все существующие системы контроля доступа на наш взгляд слишком переусложнены и неудобны. Они требуют выпуска отдельных карт, установки программ, обучения персонала, запоминания последовательности действий с мастер-картами, и т.д.
В некоторых случаях сложные СКУД необходимы: в крупных зданиях с множеством зон доступа, турникетами, охраной, временными пропусками.
В случаях, когда контролировать доступ нужно к одной или двум дверям, такие усложнения не оправданы. Даже содержание отдельного компьютера с программой под СКУД — перебор для нас.
У нас нет отдельных сотрудников, занимающихся выпуском пропусков, нет временных пропусков и охраны. Администрирование системы должно быть настолько простым, чтобы любой новый человек мог быстро её освоить без инструкций. Так как ответственного за СКУД человека может не быть на месте, управление системой должно быть удаленным.
Карта «Тройка» как идентификатор
Карта «Тройка» — пополняемая карта для оплаты проезда на всех видах общественного транспорта Москвы. Это наиболее выгодный и удобный способ оплаты общественного транспорта и некоторых городских услуг: планетарий, каток, зоопарки, Третьяковская галерея, парковка. Поэтому «Тройка» есть у каждого москвича, который регулярно пользуется общественным транспортом. Приобрести карту можно в кассах метрополитена за ≈1$.
Технически карта выполнена на базе чипа Mifare Plus, работающего в режиме SL1 — режим эмуляции Mifare Classic 1K. На обратной стороне карты находится 10-значный номер, который используется для удаленного пополнения баланса карты. Этот номер удобно использовать в качестве идентификатора в СКУД.
Номер карты «Тройка», записан в памяти карты в 32-м блоке 8-го сектора. Для чтения защищенной области памяти необходим шестибайтный ключ, который давно не является таким уж секретным.
Номер карты «Тройка» (не путать c UID чипа) хранится в защищенной памяти в блоке 32 со второго байта по младшие четыре бита седьмого байта. Для чтения этой области памяти необходим А-ключ от сектора 8. Эти ключи давно не являются секретом и легко находятся в интернете вместе с подробным описанием формата хранения данных. Так как мы не собираемся записывать никакие данные на карту, нам достаточно ключа А для чтения нужного сектора.
Таким образом, для занесения нового пропуска в базу данных достаточно визуально считать номер карты и сообщить его администратору. Это можно сделать даже удаленно.
Вопросы безопасности такого подхода рассматриваются в FAQ в конце статьи. Примеры кода для чтения номера карты Тройка с помощью Arduino есть в главе «Первый прототип».
В Санкт-Петербурге существует похожая карта «Подорожник». При необходимости её можно также использовать в качестве идентификатора, одновременно с картой «Тройка».
Apple/Android Pay и банковские карты
Платежные инструменты с разными названиями работают по одному протоколу EMV
Все платежные инструменты, изображенные на картинке выше, работают по одному протоколу EMV, свободно доступному на сайте EMVco.com. Поэтому говоря «EMV-карта», мы будем подразумевать одновременно Apple Pay, Android Pay, Samsung Pay, Visa PayWave, MasterCard PayPass.
Существует заблуждение, будто POS-терминал должен отдельно поддерживать Apple/Android Pay, поэтому пользователи предпочитают искать на кассе специальную пиктограмму, чтобы быть уверенным, что их платежный инструмент поддерживается. На самом деле, почти везде, где поддерживается бесконтактная оплата, будет работать любое устройство.
Бесконтактные EMV-карты (и контактные тоже) позволяют без авторизации, то есть без ввода PIN-кода, считать данные, обозначенные ниже. В последней главе мы рассмотрим, почему это достаточно безопасно.
Некоторые карты не передают реквизиты Cardholder Name и лог транзакций, но PAN (номер карты) передается всегда. Этот номер не изменяется на протяжении всего срока действия карты.
Поэтому именно PAN мы решили использовать в качестве идентификатора для пропуска в СКУД. Для простоты и большой приватности, было решено использовать последние 10 цифр от номера карты. Таким образом, формат идентификатора получается такой же длины, как и номер карты Тройка.
В итоге, в базе данных идентификаторов мы имеем однородные записи длинной в 10 цифр, без необходимости дополнительно помечать где карта Тройка, а где EMV-карта.
Читаем EMV-карты на коленке
Чтобы изготовить прототип считывателя, мне потребовалось бегло изучить протокол 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 команду на карту, достаточно такого когда:
Начало коммуникации — команда SELECT (PPSE)
Начало общения с EMV-картой всегда происходит с чтения файла PPSE (Payment System Environment) командой SELECT.
APDU-команда SELECT PPSE
Старт платежного приложения — SELECT AID
В ответ на SELECT PPSE карта должна вернуть FCI (File Control Information) со списком приложений, существующих на карте. Помимо платежных приложений (VISA, MasterCard, AmericanExpress) карта может содержать неплатежные приложения, используемые для других нужд.
Ответ карты VISA на SELECT PPSE
Для удобства проанализируем ответ с помощью онлайн-парсера формата 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
Получив значение AID, его нужно запустить командой SELECT. В данном случае мы запускаем приложение Visa International, полученное из ответа на PPSE SELECT
APDU-команда SELECT AID
Обработка 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.
Пропустим этот ответ через парсер:
Видно, что значение PDOL начинается с маркера 9F38 и равно 9F66049F02069F03069F1A0295055F2A029A039C019F3704. Парсер emvlab.org не умеет парсить значения PDOL, поэтому воспользуемся программой для Android-смартфонов Credit Card Reader.
Вот тот же ответ, обработанный более умным парсером. Видно каждый параметр PDOL:
Данный парсер не скрывает байт длины после маркера, как это делает emvlab.org. Поэтому последний байт каждого маркера следует читать как длину.
Разберем запрос PDOL подробнее
Карта ожидает ответ на PDOL в том же порядке, в котором следуют запросы, и ровно той длины, которая указана после каждого параметра PDOL. Если сложить длину всех параметров (последний байт каждого параметра), получится 33 байта. Значит карта ожидает от считывателя PDOL длиной в 33 байта.
Так как мы не собираемся списывать с карты деньги, наша задача — сформировать самый простой из возможных ответ PDOL, который удовлетворит карту. Если наш ответ не понравится карте, она ответит кодом 6985 Conditions of use not satisfied.
Экспериментальным путем я выяснил, что почти на все запросы PDOL можно ответить нолями, кроме Terminal Transaction Qualifiers (TTQ). В случае с VISA, нам нужно убедить карту в том, что терминал соответствует спецификации VCPS 2.1.1. Для этого ответ на TTQ должен выглядеть так:
Подробнее про формат TTQ здесь.
Карты MasterCard, которые мне довелось испытать, позволяли игнорировать PDOL и отдавали PAN-номер без корректного ответа на PDOL.
Вот как будет выглядеть минимальный рабочий ответ на запрошенный выше PDOL:
Если наш ответ удовлетворил карту, мы получим сообщение, начинающееся с маркера 77 с кодом SW2=9000. Этот ответ может содержать нужный нам PAN-номер, а может и не содержать. (офигеть)
Поиск PAN-номера
Так как нам лень писать полную имплементацию протокола EMV, разбирать все структуры ответов и формировать корректные запросы, мы поступим глупым способом, а именно пошлем все возможные запросы и будем просто искать в ответах нужный маркер, содержащий PAN-номер.
PAN-номер может содержаться в трех местах:
И парсим все ответы на предмет маркеров 57 13 либо 5A 08. Найденные 8 байт карты можно дополнительно чекнуть на контрольную сумму с помощью Алгоритма Луна.
Если номер валидный, берем его последние десять цифр.
В итоге наш примитивный алгоритм чтения PAN-номера можно изобразить в виде блок-схемы
Первый прототип
Было решено использовать в качестве идентификатора пользователя 10-значный номер, который будет формироваться либо из десяти последних цифр PAN-номера платежной карты, либо из номера карты «Тройка». Идентификатор должен передаваться контроллеру, который будет сверять его с хранящимися в базе данных номерами и решать, открывать дверь, или нет.
Всю работу по распознаванию карты должен выполнять считыватель, и на выходе отдавать 10-значный номер. В базе данных достаточно хранить только сами номера, без необходимости отмечать тип карты.
Так родился первый прототип считывателя на Arduino + PN532 breakout board.
Видео с демонстрацией работы прототипа: www.youtube.com/watch?v=aXNvjuRrCQk
Скетч для Arduino, показанный в видео, выложен здесь: github.com/zhovner/Adafruit-PN532, в папке examples/ApplePay_Troyka_ACS
Данный код довольно плохой, потому как не генерирует ответ PDOL, из-за чего не все EMV-карты будут успешно прочитаны. Однако он позволяет понять общую логику работы системы описанной в статье.
Считыватель Parsec
С самого начала мы не хотели городить кустарные поделки на arduino или raspberry pi, поэтому стали искать решение на базе промышленного оборудования.
Так как на рынке готовых решений не существует устройств даже примерно похожих на то, что нам было нужно, мы стали спрашивать у всех производителей СКУД, кто сможет реализовать наши извращенные фантазии в своем оборудовании.
Единственной компанией, которая стала с нами разговаривать, были Parsec.ru
В итоге они согласились реализовать наши идеи в прошивке своего считывателя PNR-P03E.
Parsec PNR-P03E позвоялет запрограммировать любой нестандартный алгоритм чтения карт
Большинство RFID-считывателей, которые доступны в продаже, поддерживают только определенный формат идентификаторов. Например Mifare, HiD iClass и т.д.
Нам же требовалось, чтобы считыватель поддерживал одновременно несколько форматов карт, и реализовывал нестандартный протокол чтения EMV-карт.
Ключевые особенности считывателя PNR-P03E
Считыватель самостоятельно определяет тип карты и выполняет считывание нужной области памяти. Если определить тип карты не удалось, считыватель игнорирует её. Прочитанная область памяти конвертируется в десятизначный идентификатор и передается на контроллер.
Контроллер БОРЕЙ
Контроллер — это устройство, на которое передается идентификатор карты от считывателя. Оно хранит базу данных идентификаторов карт и решает, кого пропускать, а кого нет, управляя замком двери.
Часто контроллеры СКУД состоят из нескольких блоков управления и компьютера с базой данных. Мы принципиально не хотели держать отдельный компьютер и искали компактное решение в виде одного устройства, которым можно управлять через API для интеграции с Telegram-ботом.
Поиск такого устройства занял больше месяца, пока я не наткнулся на старую статью на хабре «Обзор СКУД с бесплатным программным обеспечением». В комментариях пользователь rgmih упомянул, что их компания производит именно такой контроллер.
Так мы нашли контроллер БОРЕЙ от компании ИТРИУМ.
Плата контроллера БОРЕЙ в настенном корпусе
Устройство работает под управлением Linux на базе ARM-процессора.
Основные достоинства устройства, которые редко можно встретить у других контроллеров:
Если можно, контроллер размыкает реле магнитного замка на двери и посылает сигнал световой и звукой индикации на считыватель. Считыватель издает одобрительный писк и загорается зеленым цветом.
Если доступ запрещен, контроллер посылает сигнал индикации на считыватель, и тот горит красным цветом и пищит о том, что доступ не разрешен.
Управление контроллером
Контроллер подключается в сеть c помощью Ethernet-кабеля. Начальная настройка требует только задать IP-адрес устройства. Никакого программного обеспечения, помимо браузера, не требуется.
Учетные записи заводятся в меню «Бюро пропусков». Чтобы не вводить идентификатор карты вручную, его можно поднести к считывателю в момент создания учетной записи.
Создание нового пропуска в веб-интерфейсе контроллера БОРЕЙ
Веб-интерфейс позволяет управлять заведением пользователей удаленно с любого устройства и следить за журналом событий, не находясь на рабочем месте. Даже если связь контроллера с интернетом пропадет, это не нарушит его работу, так как вся база данных хранится локально, а интернет нужен только для внесения изменений.
Бюро пропусков в Telegram
Чтобы каждый раз не обучать нового администратора, как пользоваться веб-интерфейсом контроллера, мы решили создать Telegram бота, через которого будет происходить добавление/удаление пропусков. Это возможно благодаря наличию в контроллере БОРЕЙ REST API.
В процессе работы над системой мне часто задавали одни и те же вопросы, которые наверняка возникнут и в комментариях. Я собрал самые популярные:
Иллюстрации к статье — aquamine
Помощь в написании кода — ValdikSS
Написание Telegram бота — Alexey Tsverov
Разработка прошивки считывателя — компания Parsec и лично Леонид Стасенко
Помощь в настройке контроллера — компания ИТРИУМ и лично Глеб rgmih Рыбаков















