Apple wallet что это: Добавление и использование карт в приложении Wallet на iPhone

Содержание

Apple Wallet. What Is It? How Do You Integrate Your Card?

  • Igor Vedeneev

    Head of Mobile Development


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


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


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

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


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


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

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


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


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


Купон


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


Общая карта


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


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


Обязательные поля. Содержат Pass Type ID, Team ID, название организации и т.п. Ключи для связанных приложений. Нужны для отображения приложений, которые нужно «ассоциировать» с картой.


Ключи «срока годности» карточки.


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


Ключ стиля. В начале статьи были перечислены 5 видов карт для Wallet. Каждому из них соответствует свой стиль. Такой ключ должен быть строго один.


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


Ключи web-сервисов. Вы можете использовать web-сервисы для взаимодействия с картой, например, автоматически ее обновлять.


NFC-ключи. Содержат дополнительную информацию для Apple Pay транзакции.


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

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

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

Ключи стиля


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

 "key"   : "value1",
    "label" : "value2",
    "value" : "value3"


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

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

Баркод


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

Локация


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

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


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

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


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

. . . . . . 
   "pass.json" = 303c753abc39aa732ec74643d6db28348fe8a823;

   "strip. png" = 736d01f84cb73d06e8a9932e43076d68f19461ff;

   "[email protected]" = 468fa7bc93e6b55342b56fda09bdce7c829d7d46;
. . . . . .



С этого момента менять ничего не нужно, поскольку 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.

openssl pkcs12 -in certificate.p12 -clcerts -nokeys -out passcertificate.pem -passin pass: your_password


и

openssl pkcs12 -in certificates.p12 -nocerts -out passkey.pem -passin pass: -passout pass:new_password


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

openssl smime -binary -sign -certfile WWDR.pem -signer passcertificate.pem -inkey passkey.pem -in manifest.json -out signature -outform DER -passin pass:пароль_из_предыдущей_команды


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

zip -r nameOfPass.pkpass manifest.json pass.json signature logo.png [email protected] [email protected] icon.png [email protected] [email protected]


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


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


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

./signpass -p wallet


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

unzip wallet.pkpass


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

Интеграция с приложением


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


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

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


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

guard let passPath = Bundle.main.path(forResource: "wallet", ofType: "pkpass") else { return }
        let error: ErrorPointer = ErrorPointer(nilLiteral: ())
        guard let passData = NSData(contentsOfFile: passPath) else { return }
        let pass = PKPass(data: passData as Data, error: error)

        let passLibrary = PKPassLibrary()
        passLibrary. addPasses([pass]) { (status) in
            print(passLibrary.containsPass(pass))

        }


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

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


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

let passLibrary = PKPassLibrary()
let passes = passLibrary.passes()


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

Проверка на уникальность


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

Тестирование


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

Заключение


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

  • Igor Vedeneev

    Head of Mobile Development

    Personal column

Share on Social Media

CARDPR — сервис управления электронными картами лояльности для бизнеса

Автоматизируйте выдачу бонусных карт,
ликвидируйте пластиковые карты и бумажные анкеты.
Верифицируйте номера клиентов через Telegram/по SMS/по звонку.
Сегментируйте базу по RFM-сегментам, настройте акции
и push сообщения клиентам на iPhone, Android и в Telegram.

Автоматизируйте выдачу бонусных карт, ликвидируйте пластиковые карты и бумажные анкеты. Верифицируйте номера клиентов через Telegram/по SMS/по звонку. Сегментируйте базу по RFM-сегментам, настройте акции и push сообщения клиентам на iPhone, Android и в Telegram.

Записаться на демо в Telegram

Сервис управления электронными картами в Apple Wallet, Google Pay и Telegram. RFM-анализ.

CARDPR – cервис управления электронными картами и push сообщениями.
Электронная анкета для подключения на ваш сайт позволяет выдавать карты в автоматическом режиме. Поддержка всех типов электронных карт, push сообщений, сегментов и триггеров. Работа карт обеспечивается системными приложениями Apple Wallet, Google Pay и мессенджером Telegram. Полная синхронизация данных с вашей CRM системой.

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

RFM-анализ – анализ вашей клиентской базы по давности, частоте, сумме и составу клиентских чеков. Позволяет в автоматическом режиме сегментировать базу и назначать на каждый сегмент уникальный дизайн электронных карт, специальные акции и отправку push-сообщений.

Электронные карты в Telegram.

Сервис CARDPR поддерживает как стандартные форматы электронных карт Apple Wallet и Google Pay, так и альтернативные решения — для использования электронных карт клиентам достаточно иметь мессенджер Telegram.

Для управления картами в Telegram
используется бот @CARDPR_wallet_bot.

☝ А вы знали?
Карты можно выдавать по QR-коду,
а можно через бесконтактную NFC-наклейку.

Бесконтактные

карты лояльности NFC.

Технология NFC позволяет принимать электронные карты быстрее,
надежнее и безопаснее. При этом не нужно читать QR-код на карте,
бесконтактную карту формата NFC достаточно поднести к NFC-ридеру.

Технология NFC позволяет принимать электронные карты быстрее, надежнее и безопаснее. При этом не нужно читать QR-код на карте, бесконтактную карту формата NFC достаточно поднести к NFC-ридеру.

Клиент

всегда с картой.

Электронные карты дополняют или заменяют ваши существующие пластиковые  карты. Вместо SMS сообщений теперь можно отправлять push сообщения на телефоны клиентов.

Клиент

всегда с картой.

Электронные карты дополняют или заменяют ваши существующие пластиковые карты. Вместо SMS сообщений теперь можно отправлять push сообщения на телефоны клиентов.

Живая

структура карты.

Легко обновлять дизайн карт и информацию на них. Данные о скидках и бонусах обновляются на картах в режиме реального времени из вашей CRM.

Клиент

всегда рядом.

Клиенты хранят вашу карту в своем телефоне. Как только клиент оказывается рядом с вами, карта напомнит о вас push сообщением.

Возможности сервиса электронных карт ›

Посмотрите,

как это работает.

Используйте электронные карты вместо пластиковых
и повышайте лояльность клиентов.

Посмотрите,

как это работает.

Используйте электронные карты вместо пластиковых и повышайте лояльность клиентов.

Попробуйте —

это просто.

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

Установить

Wallet — Apple (CA)

Добавьте карту прививки от COVID‑19 в Wallet. 1  Подробнее

Носите с собой

одну вещь. Все.

Приложение Wallet находится прямо на вашем iPhone. Здесь вы надежно храните свои кредитные и дебетовые карты, посадочные талоны, билеты, ключи от машины и многое другое — все в одном месте. И все это работает с iPhone или Apple Watch, так что вы можете взять с собой меньше, но всегда берите с собой больше.

Добавьте карту

Добавьте кредитную

или дебетовую карту.
Без
дополнительных усилий.

Apple Pay.

Платите новомодным
способом.

Apple Pay

Apple Pay — это простой и безопасный способ оплаты в магазинах или в Интернете. Оплачивайте поездку, пиццу или даже новый диван одним прикосновением или взглядом. А расплачиваться в магазинах безопаснее, чем использовать физические карты, поскольку вам не нужно прикасаться к каким-либо кнопкам или обменивать наличные. Это не работа, все платят.

Узнайте больше об Apple Pay

Фильмы и

прямых трансляций.
Просто покажи.
И вперед.

Кино и прямые трансляции

Благодаря Wallet ваши билеты всегда будут под рукой. 2 Войдите в кинотеатр, концертную площадку или спортивный стадион, используя только свой iPhone или Apple Watch. Конечно, чтобы по-настоящему понравиться публике.

Подробнее о добавлении
и управлении проходами

Ключи автомобиля.

Теперь с ключом на
меньше.

Ключи от машины

После того как цифровой ключ от машины будет сохранен в Wallet, вы сможете разблокировать и завести машину, используя только iPhone или Apple Watch. 3 Делиться ключами с друзьями или членами семьи очень просто. Вы можете настраивать элементы управления и создавать ограниченные профили для новых водителей, временно делиться ключами и отзывать их, и вам больше никогда не придется спрашивать, где ваши ключи.

Узнайте больше о ключах от машины в Wallet

Нет физического

карт, чтобы проиграть.
Победа, победа, победа.

Отличные бренды

.
Всегда
складываются в
в вашу пользу.

Программа лояльности и вознаграждения

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

Стена вокруг кошелька.

Бумажник использует все преимущества конфиденциальности и безопасности, встроенные в iPhone, которые предназначены для защиты вашей личности и сохранения того, что принадлежит вам. Когда вы совершаете покупку, Apple Pay использует уникальный код транзакции, поэтому номер вашей карты никогда не передается продавцу и не размещается на серверах Apple. И нет необходимости носить с собой физические карты или сенсорные кнопки в магазинах. Так что можно с уверенностью сказать, что вы будете чувствовать себя в большей безопасности.

Начните работу с Кошельком.

Добавьте карту

Если вы что-то пропустили.

  • Apple Wallet — это приложение для iPhone и Apple Watch, которое надежно и удобно упорядочивает ваши кредитные и дебетовые карты, посадочные талоны, билеты, ключи от машины, бонусные карты и многое другое — все в одном месте.

  • Одним словом, очень. Ваши карты надежно связаны с вашим Apple ID, чтобы вам было проще добавлять карты и пропуска на разных устройствах и управлять ими. Для дополнительной безопасности iCloud шифрует данные вашего Кошелька, когда они отправляются через Интернет, и сохраняет их в зашифрованном формате, когда они находятся на серверах Apple.

  • В Apple Wallet легко использовать разные карты и абонементы. Некоторые пропуска могут автоматически появляться в зависимости от времени и места, например посадочный талон, когда вы прибываете в аэропорт.

    Вы даже можете использовать свой iPhone или Apple Watch в качестве ключа от машины. Узнать больше

  • Apple Pay — это безопасный способ оплаты и безопасных покупок в магазинах, приложениях и в Интернете. Apple Wallet — это место, где вы храните свои кредитные или дебетовые карты, чтобы использовать их в Apple Pay.

Apple Pay

Более безопасный способ сделать
безопасным,

бесконтактным
покупок в магазинах и в Интернете.

Узнать больше

Откройте приложение Wallet
и нажмите +, чтобы добавить карту.

Откройте приложение Apple Watch
на iPhone,
коснитесь Wallet и Apple Pay,
, а затем коснитесь «Добавить карту».

Выберите «Настройки» >
Wallet & Apple Pay,
и нажмите «Добавить карту».

На моделях с Touch ID,
перейдите в «Системные настройки» >
Wallet и Apple Pay и
нажмите «Добавить карту».

Кошелек — Apple (Великобритания)

Носите с собой

одну вещь. Все.

Приложение Wallet находится прямо на вашем iPhone. Здесь вы надежно храните свои кредитные и дебетовые карты, посадочные талоны, билеты, ключи от машины и многое другое — все в одном месте. И все это работает с iPhone или Apple Watch, так что вы можете брать с собой меньше, но всегда брать с собой больше.

Добавьте карту

Добавьте кредитную

или дебетовую карту.
Без
дополнительных усилий.

Apple Pay.

Платите по-
новомодным способом.

Apple Pay

Apple Pay — это простой и безопасный способ оплаты в магазинах или в Интернете. Оплачивайте поездку на автобусе, пиццу или даже новый диван одним прикосновением или взглядом. А расплачиваться в магазинах безопаснее, чем использовать физические карты, поскольку вам не нужно прикасаться к каким-либо кнопкам или обменивать наличные. Это не работа, и все платят.

Подробнее об Apple Pay

Лояльность

и награды. Вы пожинаете
то, что
вы
храните.

Программа лояльности и вознаграждения

Добавьте бонусные карты любимых кафе, супермаркетов или розничных магазинов в Wallet, и в следующий раз, когда вы будете на кассе, просто коснитесь и заплатите, чтобы получить и использовать вознаграждения. 1 Никогда больше не теряйте еще одну карту, еще один балл или еще один бесплатный двойной латте. Это идеальный способ получить все ваши точки зрения.

Экспресс-режим

.
Нажмите.
Путешествие.
Готово.

Экспресс-режим

Переведите свою карту в экспресс-режим, затем просто нажмите и сядьте на следующий поезд или автобус. Преодолевайте барьеры, поднося свой iPhone или Apple Watch к ридеру.

Подробнее об экспресс-режиме 2

Посадочный номер

.
Легче на
лету.

Посадочные талоны

После того, как вы добавите билеты на самолет в Wallet, просто подойдите к выходу на посадку и поднесите свой экран к посадке — разблокировать iPhone не нужно. 3 И получайте своевременную информацию о рейсах и уведомления по пути. Вы допущены к плавной посадке.

Фильмы и

прямых трансляций.
Просто покажи.
И вперед.

Кино и прямые трансляции

Благодаря Wallet ваши билеты всегда будут под рукой. 3 Войдите в тренажерный зал, концертную площадку или спортивный стадион, используя только свой iPhone или Apple Watch. Конечно, чтобы быть настоящим толпой-угодник.

Подробнее о добавлении
и управлении проходами

Ключи автомобиля.


Теперь на
ключей меньше.

Ключи от машины

После того, как цифровой ключ от машины будет сохранен в Wallet, вы сможете открывать и заводить машину, открывать багажник и даже включать обогреватель — с помощью iPhone или Apple Watch. 4 Делиться ключами с друзьями или членами семьи тоже легко. Вы можете отправлять ключи через приложения для обмена сообщениями, настраивать элементы управления для новых драйверов, а также делиться ключами и отзывать их.

Узнайте больше о ключах от машины в Wallet

Стена вокруг Кошелька.

Бумажник использует все преимущества конфиденциальности и безопасности, встроенные в iPhone, которые предназначены для защиты вашей личности и сохранения того, что принадлежит вам. Когда вы совершаете покупку, Apple Pay использует уникальный код транзакции, поэтому номер вашей карты никогда не передается продавцу и не размещается на серверах Apple. И нет необходимости носить с собой физические карты или сенсорные кнопки в магазинах. Так что можно с уверенностью сказать, что вы будете чувствовать себя в большей безопасности.

Начните работу с кошельком.

Добавьте карту

Если вы что-то пропустили.

  • Apple Wallet — это приложение для iPhone и Apple Watch, которое надежно и удобно упорядочивает ваши кредитные и дебетовые карты, посадочные талоны, билеты, ключи от машины, бонусные карты и многое другое — все в одном месте.

  • Одним словом, очень. Ваши карты надежно связаны с вашим Apple ID, чтобы вам было проще добавлять карты и пропуска на разных устройствах и управлять ими. Для дополнительной безопасности iCloud шифрует данные вашего кошелька, когда они отправляются через Интернет, и сохраняет их в зашифрованном формате, когда они находятся на серверах Apple.

  • В Apple Wallet легко использовать разные карты и абонементы. Некоторые пропуска могут автоматически появляться в зависимости от времени и места, например посадочный талон, когда вы прибываете в аэропорт.

    Если у вас есть кредитная, дебетовая, предоплаченная, магазинная или бонусная карта в Wallet, которая работает с Apple Pay, просто дважды нажмите кнопку «Домой», чтобы открыть Wallet и использовать карту в считывателе. На iPhone X или новее дважды нажмите боковую кнопку. Узнать больше

    Вы также можете использовать Express Travel без необходимости будить или разблокировать телефон. Узнать больше

    Вы даже можете использовать свой iPhone или Apple Watch в качестве ключа от машины. Узнать больше

  •  Apple Pay — это безопасный способ оплаты и безопасных покупок в магазинах, приложениях и в Интернете.

scroll to top