Apple passbook что это

[Нам пишут] Passbook: Сложно ли его поддерживать?

Нам пишет пользователь twitter: @Virasio

Одной из новых «фишек» 6-ой версии iOS стало приложение Passbook. Многие «критики» занесли его в список «бесполезно», говоря, что в России оно не будет поддерживаться технически. Когда стало известно, что сервис «Рамблер-касса» будет поддерживать этот формат, то голоса «критиков» стали не такими уверенными. Теперь они говорят, что наши компании слишком тяжелы на подъём и просто не будут добавлять поддержку. Я задался вопросом: а так ли сложно добавить эту поддержку? Ответ на вопрос оказался в документе, находящемся в закрытом разделе сайта Apple для разработчиков. К сожалению, я не являюсь зарегистрированным разработчиком, но Интернет всегда готов прийти на помощь, и документация по интеграции с Passbook мне стала доступна.

Какие типы карточек можно добавлять?

Этот вопрос выяснить проще всего запустив приложение Passbook на iPhone, и это:

  • посадочные талоны
  • билеты
  • карты магазинов
  • купоны

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

Как добавляются карточки?

Есть три способа добавить карточку в Passbook:

  1. через письмо на электронную почту, которое откроют в Mail.app
  2. через URL, который откроют в Safari
  3. из своего приложения через внутренние средства iOS

Последний способ понятен, там используются конкретные функции нового framework, добавленного в iOS 6, и для такой поддержки необходимо иметь своё приложение и дорабатывать его. Но как видим, наличие собственного приложения для добавления в Passbook карточек не обязательно, можно это делать через электронную почту или браузер. Причём не имеет значения мобильные версии или их старших братьев в OS X. Начиная с версии OS 10.8.2, встроенные Mail и Safari будут понимать MIME-тип application/vnd.apple.pkpass, и файл с таким типом будут добавлять в Passbook на iOS-устройства пользователя, используя iCloud. Конечно же, мобильные версии Mail и Safari в iOS умеют делать тоже самое, то есть достаточно пользователю iPhone прислать файл или ссылку на файл, чтобы добавить карточку. Главное, чтобы правильно сообщался MIME-тип файла web-сервером в случае с Safari и правильно был прописан в теле письма в случае с Mail.

Как создаются файлы карточек?

Выше я написал, что карточка по факту представляет из себя некоторый файл в специальном формате. На самом деле это подписанный ZIP-архив с определенной структурой файлов. Самое интересное для меня оказалось при изучении этой структуры — это возможность локализации карточек на нескольких языках. По-моему это очень удобно для разных музеев и других туристических мест, а также для посадочных талонов. Но сейчас мы говорим не об удобстве использования, а об удобстве создания карточки. Для этого нужно заготовить структуру файлов один раз и дальше генерировать только один файл с ключевой информацией, который является текстовым файлом в специальном формате — JSON. Любой современный разработчик знаком с этим форматом и знает средства для обработки и генерации данных в нём. Для заполнения некоторых полей этого файла необходимо быть зарегистрированным в Apple разработчиком под iOS (иметь свой уникальный идентификатор), и необходимо зарегистрировать свой тип карточек. А весь процесс генерации карточки любой адекватный разработчик реализует за день, если уже существует некая система генерации уникальных серийных номеров для этих карточек. Тут больше придётся поработать дизайнерам и в некоторых случаях переводчикам.

Кто может быстро добавить поддержку?

Конечно же те, у кого есть считывающие устройства, которые смогут считать такие данные с экрана iPhone.
Я не так давно ездил в отпуск, и в Москве добирался от вокзала до аэропорта на метро, а затем на аэроэкспрессе. Уже тогда я просто сохранил изображение, присланное мне в письме на телефон, и на выходе у турникета к считывателю подносил экран iPhone с этим изображением. Для аэроэкспресса это совсем не проблема теперь присылать письмо ещё и в формате, пригодном для Passbook. Конечно же, разработчик их системы запросит за такую функциональность дополнительные деньги, но они готовы платить за такое, т.к. их поездами пользуются многие высокопоставленные люди и иностранцы, у которых есть iPhone.
А вот у РЖД всё не так просто. Засунуть iPhone со штрих-кодом для распечатки билета в их устройство на вокзале не удалось, там очень неудобная щель, и пришлось вводить код руками. Хотя сейчас уже не требуется печатать билет, можно пройти электронную регистрацию, и им не нужна поддержка Passbook на уровне штрих-кодов. Но это не мешает им прислать билет в формате Passbook для того, чтобы клиент не забыл про свою поездку. Здесь больше надежда на расчёт РЖД на клиентов «Сапсанов» и надвигающуюся Олимпиаду.
Для купонных сервисов тут тоже есть где развернуться, благо они в большинстве своём паразитируют в Интернете, и все их купоны и так электронные.
Кроме того, как уже упоминалось, моду уже задают «Рамблер-Кассы». Надеюсь, многие быстро подхватят эту инициативу.

Читайте также:  Диапазон вай фай айфон

А где революция?

Перевод штрих-кодов с бумажек на экран телефона, конечно же, хорошо, но в чём же плюс использования Passbook? Ну во-первых, про грядущие события (даты указаны в билетах и посадочных талонах) он сможет напомнить, и их не нужно держать в голове. А во-вторых, на сервере можно организовать систему не просто для генерации карточек и для поддерживания их актуального состояния. У вас может отображаться накопленная сумма баллов, оставшееся количество посещений и т.п. Кроме того, сервер с помощью push-уведомлений может сообщать о переносе времени или места события/посадки, например, в случае со сменой терминала для посадки на самолёт. Но, конечно, это уже потребует больше усилий программистов, и больше денежных затрат на создания и поддержание инфраструктуры у владельцев бизнеса. Но что такое эти затраты по сравнению с той рекламой, которую организуют первые фирмы, реализовавшие поддержку этой системы? Вот вы знали раньше о «Рамблер-Кассе»? Я нет. А теперь мне они интересны. И я такой не один. Так что революция будет, фирмы будут соревноваться — кто сможет красивее преподнести клиенту свою услугу.

Источник

Passbook для России уже здесь

Технология Passbook, позволяющая хранить большинство важных файлов вроде билетов на самолет и в кино, купонов на скидки и многое другое (разве что не деньги), активно развивается не только на Западе, но и в России. Помогает ей в этом вовсе не Apple, а компания OSMICards, предоставляющая комплексное решение по автоматизации для бизнеса под ключ.

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

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

Многие компании сейчас выпускают карточки для Passbook, но только OSMICards интегрирует их с кассами организаций и программами лояльности клиентов. Среди последних клиентов компании — известная компания Hugo Boss. При помощи электронных карт OSMICards компания сообщает клиентам о новинках, закрытых распродажах и даже поздравляет их с днем рождения. В то время как остальные лишь просто сохраняют карточку в Passbook, которая по сути просто пылится на вашем смартфоне.

Для чего же, собственно, нужен такой посредник? Apple не волнует, каким образом та или иная компания будет подключаться к Passbook, как будет реализован процесс выдачи электронных карт покупателям. Поэтому необходима профессиональная интеграция — OSMICards помогает среднему бизнесу настроить выпуск электронных карт.

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

А чтобы вы, наши читатели, смогли сами посмотреть на наглядном примере, как работают карточки Passbook от OSMICards, компания предоставила QR-код, по которому вас ждет небольшой сюрприз.

Очевидно, что Passbook в России не будет стоять на месте, и OSMICards вскоре привлечет еще десятки клиентов, среди которых могут быть даже крупные авиакомпании. А тот, кто не успеет занять свою нишу сейчас, потом будет в отчаянии кусать локти.

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

Новости, статьи и анонсы публикаций

Свободное общение и обсуждение материалов

Лонгриды для вас

Apple планирует оснастить iPhone 13 функцией спутниковой связи. Смартфон будет соединяться со спутниками с низкой околоземной орбиты и за счёт этого обеспечивать пользователям доступ к телефонным звонкам и SMS. Само собой, не бесплатно

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

Xiaomi представила кулер ❄ для iPhone 12, который крепится на магнитах MagSafe. Благодаря активному охлаждению он должен оттянуть момент включения троттлинга и продлить работу процессора на максимальной частоте

Источник

Как пользоваться PassBook — дисконтные карты оставляем дома

время чтения: 3 минуты

Нужно ли телеге пятое колесо? Многие пользователи iPhone спрятали иконку приложения PassBook в самую дальнюю папку, практически думая, что это просто «мусорное» приложение. И все-таки, Apple не внедряет приложения в свои устройства по принципу «лишь бы были». Попытаемся на примерах разобраться как работает PassBook, какая от него польза, и как самим создавать карты для программы.

В минувший выходной решил я сходить в кино. Картина была одна из самых рекламируемых в последнее время, и, естественно, не хотелось сидеть где-нибудь на отшибе. Благодаря интернету и электронным деньгам, я спокойно приобрел билеты, не вставая с дивана, и стал ожидать сообщение на почту о совершенной покупке. Когда я открыл почтовый ящик, то увидел сообщение о возможности скачать билет в Passbook, открыв его в iPhone. Файл, который можно было скачать, находился в самом конце письма.

Открыв почту на своем iPhone, я столкнулся с тем, что файл никуда не скачивался. Формат файла Ticket.pkpass , также не был понятен ни одной программе. В принципе, на этом многие и заканчивают. Номер электронного билета есть, в кино пустят, ну и хорошо, а Apple пусть «идет лесом». Но, я решил продолжить «журналистское расследование» выяснив как пользоваться PassBook и позвонил в «Рамблер.Касса». Ответ оператора и рассмешил, и заставил ещё раз задуматься, как у Apple всё взаимосвязано. Оказывается, письмо с купоном PassBook надо открыть в фирменном приложении Mail.

Читайте также:  Продаю айфон 11 про макс 256

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

Сам билет на экране iPhone смотрелся сногсшибательно. Любители коллекционировать билеты, точно оценят такой формат.

На обратной стороне, была размещена дополнительная справочная информация.

Теперь, когда я разобрался как пользоваться PassBook, у меня появился другой вопрос: «А можно ли так внести свои скидочные карточки»? Оказывается, с трудом, но можно.

Как добавить свои карты в PassBook

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

Источник

Apple Wallet. Что это такое и как интегрировать в него свою карту

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

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

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

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

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

Файл Назначение
background.png Фоновая картинка для карты.
footer.png Картинка рядом со штрихкодом
icon.png Иконка для уведомлений и писем
logo.png Логотип карточки. Отображается слева сверху
manifest.json Реестр всех включанымх файлов
signature PKCS7 подпись
pass.json Внешний вид и информация на карте
strip.png Картинка, находящаяся сзади основного описания карточки
thumbnail.png Дополнительная картинка (уточнить)

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

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

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

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

Купон

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

Общая карта

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

Структура pass.json

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

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

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

description String.
Локализуемое
Краткое описание карты. Локализуемое.
formatVersion Int Версия формата файла. Значение должно быть 1.
String.
Локализуемое
Название организации, которая выдает карты.
String Pass Type ID и кабинете разработчика.
String Серийный номер отдельной карты
String Team ID команды разработчика

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

[Int] Опционально. ID приложений, ассоциированных с картой. Берется всегда первое, совместимое с текущим устройством.
String URL, который передается в приложение при открытии

Ключи стиля

[JSON] Основная информация о карте.
[JSON] Второстепенная информация.
[JSON] Поля для дополнительной информации. Опциональное
[JSON] Заголовок карты. Отображается даже в том случае, когда карты видны списком.
[JSON] Основная информация о карте.
String Тип транспорта для карт-билетов. Может принимать следующие значения:
PKTransitTypeAir,
PKTransitTypeBoat,
PKTransitTypeBu`,
PKTransitTypeGeneric,
`PKTransitTypeTrain`.
[JSON] Массив полей, отвечающий за обратную сторону карты

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

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

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

[JSON] Информация для баркода (см. ниже).
color as string Цвет фона.(#fa32e4)
color as string Цвет лейблов со значениями
String Опционально для билетов на события и билетов на транспорт. Карты с одинаковым стилем ― passTypeIdentifier и groupingIdentifier ― будут группироваться
color as string Текст лейблов с названиями полей
Localizable string Текст, отображаемый рядом с логотипом

Баркод

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

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

String Опциональный текст, отображаемый рядом с баркодом в том случае, если баркод не считывается.
String Формат баркода. Может принимать значения: PKBarcodeFormatQR,
PKBarcodeFormatPDF417,
PKBarcodeFormatAztec,
PKBarcodeFormatCode128
String Код или номер карты, зашифрованный в баркод.
String Кодировка сообщения. Обычно iso-8859-1

Локация

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

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

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

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

Создание карты. Часть 2

Итак, картинки готовы, 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 приложением и проблем, которые могут возникнуть. Я намерено не касался вопросов интеграции с веб-сервисами и обновления карт, и надеюсь сделать это в следующей статье.

Используемые материалы:

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

Источник

Оцените статью