Я сделал реализацию, в которой я могу создавать проходы для кошелька Apple. После того, как устройство зарегистрируется на сервере, будет ли отправлен токен, уникальный для этого устройства, или он изменится в будущем? Если да, то каковы причины этого?
Apple Wallet: Является ли Push Token уникальным для каждого устройства?
Ответы (1)
Да — для обеспечения конфиденциальности push-токены регулярно меняются — это может происходить случайным образом или при изменении оборудования (перенос пользователя на новый телефон) или часто при обновлении iOS.
Ваша реализация API веб-сервиса увидит это как новый запрос на регистрацию, и вы узнаете, что старый токен недействителен, либо через API обратной связи APNS (теперь устаревший), либо получив ответ ExpiredProviderToken (403)
от более нового API HTTP2 APNS.
person
PassKit
schedule
22.01.2019
Спасибо за ответ. Я пытаюсь выяснить, как связать, какие проходы установлены на конкретном устройстве. Но если идентификатор устройства и push-токен меняются, как я могу создать указанное выше сопоставление? Отношения прохода и устройства, которые я реализую для процесса обновления, точно соответствуют инструкциям developer.apple.com/library/archive/documentation/
- person ppavl; 22.01.2019
Вы будете уведомлены об изменениях через конечную точку регистрации веб-службы. Этот URL-адрес включает в себя
passTypeIdentifier
и serialNumber
и аутентифицируется с помощью authenticationToken
, что должно быть всем, что вам нужно для сопоставления прохода с идентификатором устройства и токеном.
- person PassKit; 23.01.2019
Я спрашиваю об этом, потому что у меня была проблема, когда устройство, которое добавило три прохода в кошелек, для каждого прохода, созданного устройством, отправляло мне другой идентификатор устройства и один и тот же токен push. В результате в процессе обновления, когда устройство запрашивает серийные номера, будет использоваться последний созданный идентификатор устройства, и этот идентификатор устройства в моей базе данных регистрируется только с последним созданным проходом, поскольку сервер идентифицирует это устройство как новое устройство. Итак. это была проблема, потому что я не мог обновить все проходы, только последний.
- person ppavl; 23.01.2019
Понял. Похоже, это может быть ошибка в реализации Apple. Предлагаю открыть отчет об ошибке.
- person PassKit; 23.01.2019