Wallet passes что это
Apple Wallet. Что это такое и как интегрировать в него свою карту
Принято считать, что Wallet – не самый популярный сервис в СНГ. Но уже во втором проекте подряд заказчик ставит задачу «Сделать интеграцию с Wallet». Поэтому я решил написать эту статью, чтобы рассказать о сервисе в целом и показать, как интегрировать в него свой продукт.
Что такое Wallet? Он позволяет держать в телефоне различного вида карты (билеты, скидочные карты и т.п.), облегчая жизнь пользователям продукта. Более того, есть возможность актуализировать информацию о карте посредством push-уведомлений, но это тема для отдельной статьи. Но если у вас есть карта/билет/абонемент, которые можно интегрировать в телефон, то для этого есть решение! Как это сделать – читайте ниже.
Структура карты
Файл | Назначение |
---|---|
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 профили.
Теперь мы готовы к генерации подписи. Сделаем это командой:
Итак, у нас все готово, осталось только собрать архив, делаем это командой:
В целом структура должна выглядеть примерно так:
Далее выполняем команду:
Wallet — это название папки, в которой лежат все ресурсы. На выходе получаем файл wallet.pkpass. Его содержимое можно посмотреть, разархивировав wallet.pkpass.
Интеграция с приложением
Для того чтобы приложение имело возможность добавлять карты в Wallet, необходимо включить эту возможность в App ID и также включить эту возможность в Capabilities в проекте.
Это необходимо для полноценной корректной работы с Wallet. В противном случае не получится считывать карты с Wallet и, например, не будет возможности понять, добавлена наша карта или нет. Также важно отметить, что team id в pass.json должен совпадать c team id, либо придется добавлять их вручную в entitlements и это может исправить ситуацию, но это я не проверял.
Добавление карты
Добавлять карты очень просто:
Получение информации о добавленных картах
Чтобы получить информацию о картах, имеющихся в Wallet и относящихся к вашему приложению, необходимо обратиться к объекту PKPassLibrary.
Таким образом, можно понять, добавлена карта или нет, а также обновить интерфейс. Кроме того, через PKPassLibrary карты можно обновлять и удалять. Обновлять карты можно и через веб-сервисы, но в этой статье мы не будем рассматривать такой вариант.
Проверка на уникальность
Тестирование
Apple предоставляет примеры pkpass для разных типов, можно ориентироваться на них.
Apple Wallet samples
Чтобы увидеть то, как выглядит карта, можно, добавить pkpass в проект (см. «Добавление карты»). Процесс добавления/удаления уже рассмотрен выше, осталось только напомнить, что приложение не будет видеть уже добавленные карты, если карта для Wallet создавалась на одном аккаунте разработчика, а сама разработка велась с другого аккаунта (актуально для аутсорс-компаний). При этом добавлять карты можно без проблем.
Проверить, корректно ли закодирована информация в штрихкоде, можно с помощью любого сканера QR-кодов. И точно необходимо проверить корректность работы с настоящим сканером.
Заключение
В статье был рассмотрен процесс создания и дизайна карты, а также процесс интеграции c приложением и проблем, которые могут возникнуть. Я намерено не касался вопросов интеграции с веб-сервисами и обновления карт, и надеюсь сделать это в следующей статье.
Используемые материалы:
Отдельное спасибо mehdzor за аккаунт разработчика для тестов.
No more plastic cards
MicroMacro Mobile Inc.
Разработано для iPhone
Снимки экрана (iPhone)
Описание
Pass2U Wallet makes you add and manage all of your cards/tickets in Apple Wallet easily.
○ All Passes/Cards: You can add store cards, membership cards, reward cards, coupons, stamp cards, movie tickets, boarding passes, business cards, identity cards, community cards, gift cards, event tickets, transportation tickets, receipts, and etc., into Wallet.
○ Easily Create Passes: You can scan the barcodes of paper tickets/ plastic cards, manually enter the barcodes, read the barcodes in photos, or directly apply the pass templates on Pass Store to create Apple Wallet passes.
○ Effortless Management: You can search keywords, sort, delete, archive the different kind of Wallet passes which are created or issued by Pass2U.
○ Get Notifications Properly: You can enter event date or locations when creating a pass. It will show up the notification when you’re near the locations or close to the event date.
○ Pass Store: You can directly apply the pass templates or design the templates you like. You can also can update, delete, or preview the templates.
Some features are included in Pro version.
[ Frequently Asked Questions ]
1. Why aren’t some barcode types used on Apple Wallet passes?
Since Apple Wallet passes only support the barcode type listed below currently:
One-Dimensional (1D) barcode: Code 128 (not supported by Apple Watch)
Two-Dimensional (2D) barcode: QR code, Aztec code, PDF417
Other types of the barcodes can not be displayed in barcode area of Apple Wallet passes.
If the barcode on a pass can’t be read normally, please ask the merchant manually enter your barcode content to redeem.
[Noted] Pro Version: When scanning the barcode types (Code 39, Code 93, Code 39 Mod 43, EAN 8, EAN 13, UPC E) which are not supported by Apple Wallet, they will be converted into strip images and displayed on the top of store cards or coupons.
2. Why can’t some merchants read the barcodes of Apple Wallet passes?
Since some merchants still use old barcode scanners which make other barcode types unable to be read. You can ask merchants manually enter your barcodes.
3. How can I backup all of my passes?
You can go to setting of iPhone > Apple ID > iCloud > turn on Wallet.
Once you would like to use another iPhone, you can log in with the same Apple ID and turn on Wallet for iCloud. Then you will see the passes issued by Pass2U on Pass2U Wallet.
4. How can I issue a lot of passes?
You could go to www.pass2u.net to design the models and send the passes to your customers.
If you have any comment or feedback about Pass2U Wallet, we’d love to hear you at contact@micromacro.com.tw.
Now share Pass2U Wallet with friends to experience nice features and ease your life!
Pass2U Wallet concerns users’ privacy, support, and feedback. They encourage us to release more useful and fun features.
Andrzej Michnia GirAppe Studio
Разработано для iPhone
Снимки экрана (iPhone)
Описание
IMPORTANT: this is not a digital wallet, it does not handle any currency or cryptocurrency. But we all usually have tons of other unneeded plastic in our wallets. Store cards, discount cards, coupons, etc. Pass4Wallet addresses that problem, allowing to digitalize them.
You don’t have to rely on your card merchants/providers anymore, and a lot of them do not provide support for the Apple Wallet. With Pass4Wallet your the one in charge.
What’s more, you are not bound to store cards or coupons anymore. You can easily add any info you want. Always forget tax or social id numbers? Just keep them in the Wallet.
We aim to make the process as convenient and lightweight as possible, making it only a few ‘clicks’ to add a new entry. In the same time, the process is flexible and configurable, with the right amount of personalization available.
• You can add and update Wallet entries, including (but not limited to): store cards, membership cards, coupon, discount cards, tickets, gift cards, community cards, etc.
• Including a free barcode scanner
• You can add entries with a wider variety of formats than usual
• You can select colors and icon
• You can add notes on the back side
• You can specify relevant dates, to be reminded by the system
• You can add relevant locations to your entries, allowing them to be shown on the locked screen when you’re near
• You can start navigation right from the back of your card
• You can share your entries if you want 🙂
Supported Barcode formats:
Additional (not supported on Apple Watch):
• EAN 8
• EAN 13
• Code-39
• data matrix
• UPC-E
• ITF
• Code 93
• Codabar
COVID Certificate 12+
COVID Certificate Switzerland
Bundesamt für Gesundheit BAG
iPhone Screenshots
Description
Keep Swiss COVID certificates easily and securely on your mobile phone
COVID Certificate is the official app for storing and presenting Swiss COVID certificates. It is developed by the Federal Office of Information Technology, Systems and Telecommunication FOITT on behalf of the Federal Office of Public Health.
In Switzerland, people who have been vaccinated, or who have tested negative or recovered from COVID can apply for a COVID certificate.
COVID certificates are issued in hard copy or electronic format serve as proof of:
1. Vaccination against COVID-19
2. Recovery from Sars-CoV-2 infection
3. A negative result following Sars-CoV-2 test analysis
When the app is first launched after installation on the mobile device, a brief introduction provides information on how to use it and how to scan a hard-copy COVID certificate.
In the app, the required COVID certificate can be selected, and presented if desired. The app shows whether, from when and for how long the COVID certificate is valid. All data contained in a certificate’s QR code can also be displayed.
It is possible to store several COVID certificates in the app, e.g. for family members, or several COVID test certificates.
Use of the COVID Certificate app is voluntary and free of charge.
Check a COVID certificate yourself
You can use the app to check a saved COVID certificate yourself. This verification process checks the electronic signature of the certificate and compares the certificate’s validity period with the current date. These are the same checks that are used for the verification of certificates in the COVID Certificate Check app.
Data protection is a top priority
COVID certificate data is stored solely on the mobile device. COVID certificates are protected by a digital seal (signature) and are thus forgery-proof.
COVID certificates are generated by the FOITT, but are not stored in a central system. That is why it is not possible to obtain a copy of an issued certificate.
The use of the app is limited to Switzerland and is subject to Swiss law.
Apple Wallet 4+
Apple Pay, билеты и не только
Apple
Снимки экрана
Описание
Приложение Wallet доступно прямо на iPhone. Это универсальный надежный способ хранить кредитные и дебетовые карты, проездные, посадочные талоны, билеты, ключи от автомобиля и многое другое. Приложение Wallet работает на iPhone и Apple Watch. Вам не придется носить с собой ничего лишнего, но все необходимое всегда будет под рукой.
APPLE PAY
Apple Pay — это универсальный способ оплаты. Этот простой, безопасный, более надежный и конфиденциальный способ оплаты заменяет физические карты и наличные при оплате на кассе и интернете. Это деньги в их современной форме.
ОБЩЕСТВЕННЫЙ ТРАНСПОРТ*
Самый простой способ перемещаться по городу. С Apple Pay можно легко оплачивать проезд на городском общественном транспорте. Проходите через турникеты мгновенно, просто поднося iPhone или Apple Watch к считывателю.
КЛЮЧ ОТ АВТОМОБИЛЯ*
Разблокируйте двери и заводите автомобиль с помощью цифрового ключа, который хранится в приложении на iPhone или Apple Watch.
СТУДЕНЧЕСКИЙ БИЛЕТ*
Добавьте в Wallet свой студенческий билет и пользуйтесь им для прохода в общежитие, в библиотеку и на мероприятия. Это также удобный способ оплачивать прачечные, закуски и обеды во многих университетах.
КЛЮЧ ОТ ДОМА*
Добавьте ключи от дома в Wallet на iPhone или Apple Watch, чтобы легко заходить к себе домой, отпирая совместимые дверные замки одним касанием.
КЛЮЧ ОТ ОТЕЛЯ*
Забронировав номер в отеле, добавьте в Wallet свой ключ от номера, чтобы заселиться без ожидания у стойки регистрации, а затем отпирать дверь номера с помощью iPhone или Apple Watch.
КЛЮЧ ОТ ОФИСА*
Добавьте в Wallet свой бейдж или карточку сотрудника, чтобы использовать iPhone или Apple Watch для открытия дверей и других действий, где нужно предъявить удостоверение.
БОНУСНЫЕ И ДИСКОНТНЫЕ КАРТЫ*
Добавляйте в Wallet бонусные карты своих любимых магазинов или кафе, чтобы не пропускать выгодные предложения.
ПОСАДОЧНЫЕ ТАЛОНЫ И БИЛЕТЫ НА МЕРОПРИЯТИЯ*
С легкостью добавляйте в Wallet свои посадочные талоны или билеты, чтобы использовать iPhone или Apple Watch для посадки на рейсы или прохода на мероприятия.