На этой странице описывается реализация перемещения и отключения потока заявок для заявок Motics. Чтобы обеспечить удобство использования, пользователь должен иметь возможность переносить свой билет Motics с одного устройства на другое в пределах определенных ограничений, определенных эмитентом. Эмитент должен ограничить билет одним устройством. Пользователь должен удалить исходный билет, прежде чем сохранять его на новом устройстве. Если пользователь не может удалить исходный билет (возможно, из-за потери устройства), эмитент должен отсоединить билет от старого устройства.
Требования к перемещению и отмене связи
Поток «Переместить и отсоединить» должен отвечать следующим требованиям:
- Билет Motics можно использовать только на одном устройстве одновременно.
- Пользователь должен иметь возможность перенести билет Motics на новое устройство в следующих случаях:
- Доступ к старому устройству, например, при обновлении до нового устройства.
- Нет доступа к старому устройству, например, если устройство потеряно или украдено.
- Количество перемещений или активаций билетов должно быть ограничено соответствующими средствами контроля со стороны эмитента билетов Motics, как это определено бизнес-требованиями PTO.
Пользовательский опыт
В этом разделе более подробно описаны два различных сценария взаимодействия с пользователем в зависимости от того, имеет ли пользователь доступ к своему старому устройству при попытке переместить билет Motics.
Пользователь имеет доступ к старому устройству
В таких случаях пользователь может инициировать процесс перемещения со своего старого устройства:
- Пользователь удаляет билет Motics из приложения «Кошелек» на своем старом устройстве.
- Пользователь находит электронное письмо с подтверждением от эмитента на своем новом устройстве или входит в интернет-магазин или на портал по продаже билетов и нажимает ссылку «Сохранить в Google Wallet», чтобы повторно сохранить билет в приложении Google Wallet.
У пользователя нет доступа к старому устройству
Если у пользователя нет доступа к своему старому устройству, ему необходимо инициировать процесс отсоединения и перемещения либо с портала продажи билетов интернет-магазина, либо обратившись в службу поддержки клиентов эмитента, который может инициировать процесс отсоединения от имени пользователя.
- Пользователь находит электронное письмо с подтверждением от эмитента и инструкциями по обращению в службу поддержки клиентов за помощью или запускает процесс отсоединения от веб-сайта эмитента или портала продажи билетов. Это может быть кнопка отмены связи на портале продажи билетов.
- Эмитент отвязывает билет от старого устройства от имени пользователя (подробнее в разделе «Обязанности эмитента» ).
- Билет станет непригодным для использования (штрих-код не будет сканироваться) на исходном устройстве, как только эмитент отключит его.
- Эмитент должен исключить старый билет из списка, чтобы гарантировать, что его больше нельзя будет сканировать с помощью проверочных устройств.
- Билет будет автоматически удален с исходного устройства, как только он снова появится в сети (максимальное усилие).
- Пользователь находит электронное письмо с подтверждением от эмитента на своем новом устройстве или входит в интернет-магазин или на портал по продаже билетов и нажимает ссылку «Сохранить в Google Wallet», чтобы повторно сохранить билет в приложении Google Wallet.
Обязанности эмитента
- Во время первоначальной настройки эмитент должен вставить транзитный класс с
multipleDevicesAndHoldersAllowedStatus=ONE_USER_ONE_DEVICE
. - Электронное письмо с подтверждением, которое эмитент отправляет пользователю во время покупки, должно содержать инструкции о том, как перенести билет на новое устройство.
- Электронное письмо с подтверждением должно содержать идентификатор заявки на помощь в процессе поддержки.
- Чтобы свести количество контактов к минимуму, эмитент также должен иметь кнопку отсоединения в своем интернет-магазине или билетном портале, где пользователь может управлять своим билетом.
- Эмитент несет ответственность за ограничение количества активаций билета. Это сделано для того, чтобы пользователи не перемещали один и тот же билет туда и обратно между устройствами (оба вошли в одну и ту же учетную запись в Кошельке) на неопределенный срок.
- Эмитент должен отслеживать, сколько раз конечная точка активации вызывается для одного и того же objectId, и отклонять запрос активации, если он превышает лимит.
- Поскольку у каждого эмитента есть свои собственные правила относительно того, сколько раз можно перемещать билет, Google требует, чтобы эмитенты ограничивали перемещение билетов со своей стороны.
- Если пользователь хочет отвязать билет, обратившись в службу поддержки:
- Если пользователь не может удалить билет со старого устройства, эмитент отключает билет, вызывая
transitObject:patch
с{hasLinkedDevice:false}
дляobjectId
билета.- Эмитенту необходимо будет найти идентификатор объекта для данного билета. Им следует найти это на основе идентификатора, предоставленного пользователю в электронном письме с подтверждением.
- Если пользователь не может удалить билет со старого устройства, эмитент отключает билет, вызывая
- Если пользователь инициирует процесс отсоединения в интернет-магазине или на портале билетов:
- Эмитент отключает билет, вызывая
transitObject:patch
с{hasLinkedDevice:false}
дляobjectId
билета.
- Эмитент отключает билет, вызывая
- Эмитент должен внести старый билет в список запрещенных, чтобы его больше нельзя было сканировать с помощью проверочных устройств.
Обязанности Google
В ответ на получение transitObject:patch
с вызовом {hasLinkedDevice:false}
Google отзовет существующий сертификат (если он есть) на сервере Motics. Если у пользователя все еще есть старое устройство с исходным билетом, штрих-код больше не будет работать, поскольку он будет удален со старого устройства, пока оно находится в сети или снова подключается к сети.
Диаграмма последовательности
Рисунок 1. Порядок отключения заявки Motics
На рис. 1 показаны вызовы transitObject:patch
и pruneTree()
, которые используются для отсоединения билета, когда у пользователя больше нет доступа к своему старому устройству.