Карты wallet iphone

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

Что такое Wallet? Он позволяет держать в телефоне различного вида карты (билеты, скидочные карты и т.п.), облегчая жизнь пользователям продукта. Более того, есть возможность актуализировать информацию о карте посредством push-уведомлений, но это тема для отдельной статьи. Но если у вас есть карта/билет/абонемент, которые можно интегрировать в телефон, то для этого есть решение! Как это сделать — читайте ниже.

Как правило, за создание карты отвечает ваш сервер. Приложение получает карту в виде .pkpass файла и уже через приложение пользователь может добавить карту в Wallet.

Структура карты

Что же представляет собой карта с точки зрения разработчика? Карта — это архив с расширением .pkpass. Он содержит в себе все данные, необходиимые для отображения и работы карты. Содержимое архива — в таблице ниже.

Существуют следующие типы карт:

  • Посадочный билет: на самолет или поезд. Обычно купон работает на одну поездку;
  • Купон: для купонов и специальных предложений;
  • Билет на событие: может работать как для одного события, так и для целого сезона;
  • Скидочная карта: карты лояльности, скидочные или подарочные карты;
  • Карта общего вида: если ничего из вышеперечисленного не подходит под ваш случай: например, карта для поездок на метро или пропуск в спортзал.

Рассмотрим схематично внешний вид разных карт. Картинки лучше называть так, как это указано в таблице выше.

Посадочный билет

Купон

Билет на событие

Общая карта

Скидочная карта

Обязательные поля. Содержат Pass Type ID, Team ID, название организации и т.п. Ключи для связанных приложений. Нужны для отображения приложений, которые нужно «ассоциировать» с картой. Ключи «срока годности» карточки. Ключи актуальности. Например, координаты местности, где карта может быть использована, или начало события, для которого она предназначена. Ключ стиля. В начале статьи были перечислены 5 видов карт для Wallet. Каждому из них соответствует свой стиль. Такой ключ должен быть строго один. Ключи визуального оформления карты. Помимо очевидного, содержат в себе информацию о штрихкоде, отображаемом на карте. Ключи web-сервисов. Вы можете использовать web-сервисы для взаимодействия с картой, например, автоматически ее обновлять. NFC-ключи. Содержат дополнительную информацию для Apple Pay транзакции.

Теперь обо всем подробнее.

Обязательные поля

Ключи для связанных приложений

Ключи стиля

JSON в данном случае имеет следующий вид:

Значение по ключу value может быть как числовым, так и строковым. Однако currencyCode вместе со строковым значением использовать не получится. Что касается auxiliaryFields и secondaryFields, их может быть несколько, и стоит следить за длиной строк, которые в них используются.

Ключи визуального оформления

Баркод

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

Локация

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

Оборотная сторона

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

Итак, картинки готовы, pass.json сформирован, осталось собрать все это вместе. Для этого заполним manifest.json (см. таблицу 1), куда необходимо включить все картинки и pass.json. Получается примерно так:

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

Далее нужно создать Pass Type ID в кабинете разработчика и сделать для него сертификат. Процедура должна быть более-менее знакомая, если ранее вы создавали, например, Provisioning профили.

Далее заходим в ключницу (Keychain) и экспортируем оттуда Apple Worldwide Developer Relation Certificate (WWDR) как .pem.

Оттуда же экспортируем созданный Pass Type ID как .p12. На этом этапе ключница попросит вас ввести пароль для сертификата. При этом пароль вводить необязательно. Обратите внимание, что все дальнейшие действия надо производить в одной папке, где уже должны лежать manifest.json, pass.json и картинки.

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

и

Теперь мы готовы к генерации подписи. Сделаем это командой:

Итак, у нас все готово, осталось только собрать архив, делаем это командой:

Обращаю внимание, что тут должны быть перечислены все файлы, в которые вы хотите включить архив данных для карты(.pkpass). В итоге мы получим .pkpass файл, который можно открывать на компьютере. Мы увидим превью карты, внешний вид которой может отличаться от вида на телефоне. Все это можно сделать чуть проще. Apple предоставляет утилиту signpass (Apple Wallet sample meterials), которая берет на себя все подсчеты SHA (файл manifest.json можно не делать самостоятельно) и работу по созданию подписей. Чтобы ей воспользоваться, нужно собрать проект и поместить файл signpass в папку со всеми необходимыми ресурсами.

В целом структура должна выглядеть примерно так:

Далее выполняем команду:

Wallet — это название папки, в которой лежат все ресурсы. На выходе получаем файл wallet.pkpass. Его содержимое можно посмотреть, разархивировав wallet.pkpass.

Не исключено, что создание pkpass будет вынесено на бэкенд, в таком случае надо будет передать разработчикам WWDR, сертификат для Pass Type ID в виде .p12 и пароль от него.

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

Это необходимо для полноценной корректной работы с Wallet. В противном случае не получится считывать карты с Wallet и, например, не будет возможности понять, добавлена наша карта или нет. Также важно отметить, что team id в pass.json должен совпадать c team id, либо придется добавлять их вручную в entitlements и это может исправить ситуацию, но это я не проверял.

Добавление карты

Добавлять карты очень просто:

Однако, опять же, чаще .pkpass файл надо будет скачивать с вашего сервера. Стоит отметить, что PassKit выдает довольно читаемые ошибки, поэтому можно легко понять, что именно было сделано не так.

Получение информации о добавленных картах

Чтобы получить информацию о картах, имеющихся в Wallet и относящихся к вашему приложению, необходимо обратиться к объекту PKPassLibrary.

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

Поскольку в вашем сервисе, как правило карта привязана к аккаунту, в приложении скорее всего придется как-то определять принадлежность карты к текущему пользователю. Предлагаю делать это через serialNumber. Например, задавать в качестве serialNumber id пользователя или номер карты.

Apple предоставляет примеры pkpass для разных типов, можно ориентироваться на них. Apple Wallet samples Чтобы увидеть то, как выглядит карта, можно, добавить pkpass в проект (см. «Добавление карты»). Процесс добавления/удаления уже рассмотрен выше, осталось только напомнить, что приложение не будет видеть уже добавленные карты, если карта для Wallet создавалась на одном аккаунте разработчика, а сама разработка велась с другого аккаунта (актуально для аутсорс-компаний). При этом добавлять карты можно без проблем. Проверить, корректно ли закодирована информация в штрихкоде, можно с помощью любого сканера QR-кодов. И точно необходимо проверить корректность работы с настоящим сканером.

В статье был рассмотрен процесс создания и дизайна карты, а также процесс интеграции c приложением и проблем, которые могут возникнуть. Я намерено не касался вопросов интеграции с веб-сервисами и обновления карт, и надеюсь сделать это в следующей статье.

https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/PassKit_PG/Creating.html https://developer.apple.com/library/archive/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/TopLevel.html#//apple_ref/doc/uid/TP40012026-CH2-SW3 https://itechroof.wordpress.com/2015/11/30/apple-wallet-part-13/ https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/PassKit_PG/Updating.html

Отдельное спасибо mehdzor за аккаунт разработчика для тестов.

Надоело носить раздутую визитницу, до отказа заполненную скидочными картами разных магазинов? Вечно не оказывается под рукой нужных? Загрузите их в свой iPhone и используйте в Apple Pay дисконтные карты точно так же, как их обычные пластиковые варианты! Освойте, как добавить карту в ваш виртуальный wallet, и получайте скидку, просто прикладывая телефон к сканеру (считывателю)!

Что такое Apple Wallet

Apple Wallet (старое название — Passbook) — это виртуальный бумажник, хранилище номеров банковских, скидочных карт, билетов в кино или на поезд, самолёт, автобус и пр. прямо у вас в телефоне. В России официально запущен в октябре 2016, после двухлетней «обкатки» в США (хотя ушлые пользователи, меняя IP на британский, пользовались пассбуком гораздо раньше).

Требования:

  • смартфон iPhone 6 и выше;
  • touchID (идентификация владельца по отпечатку пальца) или FaceID (для iPhone X).

Также возможен запуск через:

  • планшет iPad;
  • плеер iPodTouch;
  • «умные часы» iWatch.

Количество карточек: от 8 (на старых моделях) до 12 (на новых).

Какие карты поддерживаются

Приложение apple pay

За четыре года существования программы накопилось великое множество компаний, которые предоставляют в Apple виртуальные аналоги реальных карточек. Это крупные сети с большим именем и филиалами в нескольких странах (Ашан, Ikea, McDonald’s, Starbucks), хотя попадаются и довольно молодые компании местного значения (Перекрёсток, ВкусоМания, ТелеМакс, Street beat и пр.).

Вот некоторые варианты, которые можно использовать в России:

  • BP (заправки)
  • Leap (спортивная одежда)
  • Lego
  • Nike
  • Re:Store (распространитель эппла)
  • Samsung
  • Slow subs
  • Sony
  • Ural Airlines
  • АВТОДОР-Платные дороги
  • Адамас (ювелирные украшения)
  • Альфа-страхование
  • Магнит
  • М-видео
  • Медиамаркт
  • РОЛЬФ Премиум (BMW-центр)
  • Связной
  • Снежная королева
  • СпортМастер и прочие, и прочие, и прочие.

Не знаете можно ли загрузить скидочную карту в iPhone? Спросите у продавца за кассой — он обязан знать, есть ли у неё виртуальные аналоги

Как добавить карту

Уже существуют ресурсы, накопившие большую базу популярных карт. Это passsource.com (если на пластике нет штрих-кода) и osmicards.com (для самых разных), а также приложение FidMe. Пользоваться ими просто: выбираете компанию из списка, вводите номер — виртуальная карта готова. Файлы с расширением .pkpass можно передать:

  • через приложения Apple: «Почта», «Сообщения»;
  • через AirDrop (локальная сеть для Mac- и Apple-устройств, беспроводная — на основе BlueTooth или WiFi);
  • с Mac-устройства.

Приложение apple pay

Можно провести процедуру самостоятельно:

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

Алгоритм пополнения Apple Wallet:

  1. Запустите приложение Wallet.
  2. Нажмите на синий плюс («Добавить карту»).
  3. Затем сфотографируйте или введите вручную цифры.
  4. Нажмите «Далее».
  5. Готово!

На планшете процесс происходит аналогично, только само приложение находится в «Настройках».

Если приложение выдаёт ответ: «Этот код не относится ни к одной карте» или что-то на него похожее, то воспользоваться приложением не получится — производитель не рассчитывал на виртуальное использование карточки через айфон.

Чтобы воспользоваться приложением через «умные часы» (и чтобы они работали независимо от смартфона):

  1. Запустите приложение Watch на iPhone.
  2. Щёлкните пункт «Мои часы».
  3. Перейдите в «Wallet и Apple Pay».
  4. Выберите из списка карт, которые вы уже добавили в iPhone, по нужной.
  5. Щёлкните «Добавить».

Или же нажмите «Добавить новую карту» и делайте всё, как будут показывать появляющиеся инструкции.

Перед добавлением обязательно включите TouchID или FaceID. Если его отключить или убрать пароль, информация обо всех карточках немедленно сотрётся из памяти телефона, чтобы не попала в руки злоумышленникам. Для iWatch обязательно распознавание запястья или хотя бы пароль, иначе никакие данные не сохранятся.

Настройка

Приложение apple pay

Приложении Apple Wallet позволяет смотреть историю использования карточек, проверять баланс и скидку по дисконту, получать уведомления об акциях и пр. Его даже можно заблокировать дистанционно — если телефон потерялся или украден, так что информация о ваших картах будет в полнейшей безопасности — гарантированно.

Доступ к основным возможностям через меню. Доступны следующие действия:

  • удаление;
  • автоматический выбор (для самой верхней);
  • изменение последовательности;
  • обновление информации (потянуть вниз);
  • полезная информация (например контактная);
  • общий доступ (не для всех);
  • установка специальной программы для определённой карты;
  • автообновление;
  • отображение на заблокированном экране (не всегда возможно — ограничение производителя или проблемы со службой геолокации).

Как пользоваться

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

Apple Wallet дисконтные карты

а также бесконтактный терминал и поддержка Apple Pay.

Также механизм должен сработать, если терминал работает с PayPass или PayWave.

Apple Wallet дисконтные карты

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

Алгоритм открытия виртуальной скидочной карты через телефон прост:

  1. Открыть приложение Wallet (по умолчанию — двойной щелчок на «Домой», на iPhone X — дважды на боковую кнопку).
  2. Выбрать из списка нужный вариант.
  3. Приложить телефон к сканеру (бесконтактному терминалу).
  4. Получить скидку/оплатить товар.

Есть упрощённый вариант — задействовать функцию «Автоматический выбор»: нужно просто поднести iPhone к сканеру, одновременно удерживая палец на сенсорном окошке распознавания отпечатка (или посмотреть на iPhone X, чтобы подтвердить свою личность через FaceID).

С Apple Watch работать ещё проще:

  1. Двойное нажатие на боковую кнопку.
  2. Контакт со сканером.
  3. Готово! Вы великолепны!

Самые продвинутые компании оснащают свои торговые точки бесконтактными терминалами. Соответственно, Apple Pay применим только там, где есть сканер для штрих-кодов. Если же (а таких вариантов великое множество) в торговом центре стоят примитивные банковские терминалы, которые требуют провести пластиком с магнитной полосой или вставить карту с чипом, Apple Wallet окажется слишком современным и не пригодится. Да и от визитницы всё равно никуда не денешься — разве можно только немного (на 12 самых полезных экземпляров) уменьшить её объём. Однако, как шаг в будущее, технология Apple Wallet — прекрасное воплощение идей фантастических романов!

Поделиться:
Нет комментариев

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

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

×
Рекомендуем посмотреть