Отправка Apple Push-уведомлений на кошелек Wallet Passes для разных PassTypeID
У меня есть веб-приложение, которое способно создавать пропуски в яблочный кошелек для iOS. Процесс выглядит примерно так: Пользователь предоставляет свой Apple Pass ID и сертификат от разработчика apple, на основе этого сертификата я создаю кошелек, который могу отправить устройствам, затем устройства регистрируются в моем webServiceURL.
Теперь я протестировал это приложение при создании пропусков с моим Apple Pass ID и при использовании моего ключа APNs с той же учетной записи разработчика, и все работает отлично. Теперь я ищу, как отправить push-уведомления на устройства, которые имеют пропуск с другим Apple Pass ID (так что от пользователя Apple Pass ID) с моим ключом APNs.
Такие приложения, как PassKit и т.д., могут отправлять эти уведомления, не запрашивая у пользователя ключ APN, может быть, я чего-то не понимаю в этом процессе? Я использую библиотеку aioapns для python, и когда я пытаюсь отправить уведомление о проходе, сделанном с помощью PassTypeID из другого аккаунта разработчика apple, если я использую этот PassTypeID в качестве темы с ключами из моего аккаунта разработчика, я получаю TopicDissalowed, а когда я использую свой PassTypeID в качестве темы, устройство не уведомляется.
Я только что исправил это, для тех, кто борется с тем же подходом, вот решение:
То, что Apple требует в плане пассов, это подтвердить себя методом сертификата, для клиента APNs() вы должны использовать только client_cert
и use_sandbox
=False, где для client_cert
это должен быть .pem
файл КОМБИНИРОВАННОГО приватного ключа (используется для генерации CSR для apple) и PassTypeID сертификата в ОДНОМ файле. Не указывайте team_id или topic, это не имеет значения (они все равно есть в сертификате), и push будет работать.