← Все статьи

Как QR-код, который меняется каждые 30 секунд, защищает от передачи абонементов

· 3 мин чтения

Бумажный абонемент, пластиковую карту или постоянный QR-код можно одолжить, сфотографировать или переслать. Что меняет на входе обновляющийся код, а что нет.

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

Как абонемент передают другим

  • Карту дают на вечер. Друг берёт пластиковую карту или бумажный абонемент на один вечер, и на ресепшене этого никто не заметит.
  • Карточка осталась «дома». «Забыл, отметьте в следующий раз». Следующий раз наступает редко.
  • Постоянный QR-код пересылают. Многие системы присылают QR-код по email или печатают его на карте. Код каждый день один и тот же, поэтому его фото работает не хуже оригинала — у кого угодно и пока действует абонемент.
  • На ресепшене знают всех, пока не перестают. В небольшой студии на ресепшене знают постоянных клиентов. Но выходит новый сотрудник или выдаётся загруженный вечер понедельника — и этого знания уже нет.

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

Чем отличается обновляющийся код

В Abonatus QR-код клиента не печатают и не присылают по email. Его создаёт телефон клиента, и он меняется каждые 30 секунд.

Когда клиент входит в аккаунт, его телефон получает секрет, который знают только этот телефон и наш сервер. Из этого секрета и текущего времени телефон вычисляет код на текущие 30 секунд. Телефон на ресепшене сканирует его, сервер делает тот же расчёт и сравнивает. Если всё совпало, код настоящий и свежий.

Из этого следуют три вещи.

Скриншот устаревает за минуту-другую. Код принимается недолго — с запасом на медленное сканирование или часы телефона, которые немного спешат, — а потом он просто неверен. Фото, отправленное другу, бесполезно к тому времени, как он дойдёт до двери.

Код срабатывает один раз. После того как код кого-то пропустил, тот же код, показанный снова, отклоняется как повторный, поэтому двое не пройдут друг за другом с одним экраном. Клиента, который вышел и вернулся в тот же день, всё равно пропустят: сегодня он уже приходил, его фото на экране у ресепшена, и второе посещение не списывается.

Один телефон на аккаунт. Если клиент войдёт в аккаунт на втором телефоне, первый перестанет создавать действующие коды. Если поделиться аккаунтом с кем-то, один из двух телефонов перестанет работать на входе.

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

Про фото обычно забывают

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

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

Чего он не остановит

Честно о границах.

  • Того, кто вообще не подходит к ресепшену. Если дверь открыта, а за стойкой никого нет, никакой код не поможет. Abonatus записывает каждый вход, кто пропустил человека и был ли вход по сканированию или вручную. Он не посчитает тех, кто прошёл мимо стойки, но закроет любой спор о тех, кто прошёл через неё.
  • Услугу, которую ресепшен оказывает другу. Клиента, который забыл телефон, можно пропустить по имени, но правила те же, что и при сканировании, то есть абонемент должен действовать. Вход отмечается как ручной, и владелец видит ручные входы отдельно.

Смысл не в том, чтобы кого-то поймать

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