Как интегрировать Apple Wallet в мобильное приложение?

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

Найти полноценную инструкцию о том, как ее делать нам не удалось – информация разбросана по разным источникам. Так родилась мысль описать процесс интеграции Apple Wallet от и до. С нашей статьей он займет не больше 30 минут. Без нее – может потребоваться от 2 до 4 часов.
Требования:
  • Mac OS
  • Доступ к аккаунту Apple Development
Используемые библиотеки:
Создание PassType ID
  1. Идем сюда - https://developer.apple.com/account/resources/identifiers/list
  2. Выбираем в списке PassTypeIDs → нажимаем далее
  3. Вводим описание вашего сертификата (обычно это название приложения) и идентификатор pass.com.example.app - (прим. pass.by.johndory.app)
Создание сертификата
  1. Идем сюда - https://developer.apple.com/account/resources/certificates/add
  2. В software выбираем iOS App Development и в Services выбираем Pass Type ID Certificate → нажимаем далее
  3. Вводим название сертификата и в выпадающем списке PassType Id выбираем наш только созданный Pass Type Id
  4. Далее от нас требуется загрузить загрузить ключ, который нам необходимо сгенерировать на Mac OS, теперь переходим к заголовку Создание ключей (Mac OS)
Создание ключей Mac OS
Запускаем это приложение (Keychain)
Связка ключей → Ассистент сертификации → Запросить сертификат
Обязательно ставим галочку рядом с “Указать информацию о паре ключей вручную”
Нажимаем Download и качаем файл pass.cer
В связке ключей импортируем скачанный файл
Ищем в поиске Keychain по ключевому слову приложения, в моем случае это johndory и находим выбирам наш сертификат с его закрытым ключом. Правой клавишей нажимаем и экспортируем его в формат P12(он по умолчанию), придумываем пароль и обязательно запоминаем/записываем, он пригодится для генерации сертификата пушей.
Генерация сертификата для пуш-обновлений Apple Wallet
Переносим файл CERTIFICATE.p12 в любое место и прописываем следующую команду, которая сгенерирует сертификат для пушей (Необходимо будет ввести пароль, который прописывали при генерации файла CERTIFICATE.p12)
openssl pkcs12 -in CERTIFICATE.p12 -out pushcert.pem -nodes
Теперь у нас есть 2 файла CERTIFICATE.p12 и pushcert.pem, их переносим в любое удобное место в проекте.

Как вариант можно организовать папку wallet и прокинуть эти файлы туда.

Далее переходим по ссылке http://developer.apple.com/certificationauthority/AppleWWDRCA.cer и качаем общий AppleWWDRCA сертификат, прокидываем к себе в ключи импортировав его, как мы это делали ранее. Далее находим по ключевому слову Apple и экспортируем в формате .pem, переносим его к остальным сертификатам.
Экспорт общего сертификата Apple
Результат
В итоге у нас должно получится 3 файла, которые необходимы для корректной работы Apple Wallet.
Список файлов, который должен получиться
Вышеописанную процедуру необходимо выполнять как для дева, так и для прода.
Эта инструкция пригодится всем, кто хочет интегрировать карты в приложение. Она универсальна, от бэка не зависит. Но в данном конкретном случае мы приложили библиотеку для PHP, которую используем у себя.