- Карта Wallet для бизнеса. С чего начать работу с электронными картами лояльности?
- Сфера бизнеса и тип электронной карты
- Дизайн электронной карты
- Аккаунт Apple Developer
- Подготовить способ выдачи электронных карт
- Продумайте стратегию коммуникации через электронные карты лояльности
- Рассчитайте эффективность
- Если вы уже планируете создать электронные карты Wallet для своих клиентов
- Apple Wallet. Что это такое и как интегрировать в него свою карту
- Структура карты
- Посадочный билет
- Купон
- Билет на событие
- Общая карта
- Скидочная карта
- Структура pass.json
- Обязательные поля
- Ключи для связанных приложений
- Ключи стиля
- Ключи визуального оформления
- Баркод
- Локация
- Оборотная сторона
- Создание карты. Часть 2
- Интеграция с приложением
- Добавление карты
- Получение информации о добавленных картах
- Проверка на уникальность
- Тестирование
- Заключение
- Используемые материалы:
Карта Wallet для бизнеса. С чего начать работу с электронными картами лояльности?
Предлагаем рассмотреть ряд популярных вопросов, чтобы получить в итоге чек-лист – на что бизнесу следует обратить внимание, прежде чем создать карту в Wallet.
Будет полезно всем, кто думает над подключением сервиса электронных карт лояльности, но по какой-то причине еще не оставил заявку нашим специалистам.
Наличие программы лояльности и CRM системы
Электронная карта лояльности является зеркалом программы лояльности. Контактная информация клиентов, бонусы, уровни скидки, специальные предложения и акции – это то что содержит CRM система и отражает электронная карта.
Сервис электронных карт Wallet OSMI Cards имеет более 15 готовых интеграционных решений, которые позволяют “подружить” вашу CRM c сервисом электронных карт в кратчайшие сроки.
Несмотря на широкие возможности, которые открывает интеграция, сервис электронных карт лояльности можно эффективно использовать и без CRM-cистемы. Как правило, в этом случае создается карта клиента с фиксированной скидкой, а информацию о клиентах можно импортировать из csv-файла.
Сфера бизнеса и тип электронной карты
В зависимости от типа бизнеса, можно использовать несколько типов электронных карт лояльности Wallet. Помимо, собственно, классической карты лояльности, магазинам, ресторанам и сфере услуг можно использовать электронные купоны. Так как электронные купоны подразумевают ограниченный срок использования, с их помощью можно простимулировать клиента на совершение целевого действия.
Помимо электронной карты лояльности и электронного купона доступны шаблоны электронного билета, которые используют в кинотеатрах и спортивных центрах.
Дизайн электронной карты
Подготовьте несколько вариантов изображения на карте Wallet, подберите цвет шрифта и информацию, которую увидит клиент на лицевой и оборотной стороне. Действуйте в соответствии с брендбуком компании или экспериментируйте с дизайном – для этого нет никаких преград.
Вы можете самостоятельно добавить электронные дисконтные карты Wallet наших клиентов, чтобы посмотреть на примеры дизайна карт.
Аккаунт Apple Developer
Для работы с электронными картами лояльности Apple Wallet бизнесу необходим аккаунт разработчика Apple. Процесс получения прост и не занимает много времени, как правило он проходит параллельно подготовке к интеграции и обучению работы в личном кабинете.
Подготовить способ выдачи электронных карт
Крайне важно вовлечь максимальное число клиентов в использование электронных карт лояльности. Для того чтобы поместить карту в смартфон клиента лучше всего использовать несколько способов, например, разместить QR код на печатных носителях (например, поставить тейбл тенты с QR в прикассовой зоне, или на столиках в ресторане) и отправить карты действующим клиентам email рассылкой. Сформируйте выгоду, которую получит клиент от использования электронных карт Wallet. Дайте возможность получать дополнительные бонусные баллы за их установку.
Подробнее о способах выдачи электронных карт в онлайне и офлайн.
Продумайте стратегию коммуникации через электронные карты лояльности
Чтобы получить ожидаемое действие, важно отправлять клиентам своевременное и полезное сообщение. Подготовьте координаты для геоточек, рядом с вашим магазином или точками продаж конкурентов.
Рассчитайте эффективность
Помимо эффективного канала коммуникации электронные карты лояльности позволяют сэкономить маркетинговый бюджет.
Можно полностью или частично отказаться от затрат на маркетинговые и транзакционные SMS сообщения и затрат на выпуск и логистику пластиковых карт.
Для примера возьмем среднюю оптовую стоимость изготовления одной пластиковой карты 10 рублей, и стоимость одного маркетингового SMS сообщения – 2 рубля. При базе в 2000 клиентов, если половина из них установит электронные карты лояльности, экономия составит более 12 000 рублей.
Если вы уже планируете создать электронные карты Wallet для своих клиентов
Напишите нам, мы поможем рассчитать эффективность использования сервиса, сориентируем в сроках запуска сервиса, с учетом интеграции с вашей CRM-системой.
А также поделимся примерами использования карт Wallet и наиболее эффективными способами выдачи электронных карт!
Источник
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 за аккаунт разработчика для тестов.
Источник