Недействительный токен для некоторых устройств

данный:

  • работающее приложение для iPod
  • Серверная часть на php (модифицированный easyapns).

Я отправляю запросы в песочнице ssl://gateway.sandbox.push.apple.com:2195 Если я отправляю запрос на ssl://gateway.push.apple.com:2195, никаких ошибок не возвращается, но уведомление не пришло. В этом случае, если я отправляю совершенно неправильный токен устройства (например, 12345), APN все равно не возвращают ошибку.

Проблема: APN возвращает status_code => 8 (для объяснения доки: Invalid token) на запрос Расширенный формат уведомления, и возвращает код ошибки для 4 из 5 токенов с 5 устройствами.

У меня есть правильный сертификат разработчика, по крайней мере, так говорит разработчик приложения для iPod, который отправил мне этот сертификат. И разработчик приложения iPod утверждает, что приложение каждый раз отправляет правильный токен разработчика (я не знаю, как проверить токен устройства без инструментов Mac и разработчика).

Проверено:

  • Порты сервера 2195,2196 открыты
  • Настройки моего маршрутизатора, через который iPod подключен к сети, верны (и порт 5223 для приема открыт) - я проверял в приложениях "iPusher" и "iPush test"
  • Подключение к APN успешно
  • Пытался отправить с локальной машины
  • Пытался отправить с VPS
  • Проверено

person gorodezkiy    schedule 10.04.2012    source источник
comment
Вы где-то храните токен, чтобы с этой частью могли возникнуть проблемы?   -  person Joachim Isaksson    schedule 10.04.2012
comment
В настоящее время при тестировании он жестко запрограммирован непосредственно в php-коде. И это не я написал, а просто скопировал/вставил то, что было отправлено на сервер приложением iPod.   -  person gorodezkiy    schedule 12.04.2012
comment
Вы используете действующий сертификат и действующие токены при обращении к действующему серверу APN, верно?   -  person mattjgalloway    schedule 12.04.2012
comment
Нет, я использую правильный сертификат разработчика, по крайней мере, так говорит разработчик приложения для iPod, который отправил мне этот сертификат. И разработчик приложения iPod утверждает, что приложение каждый раз отправляет правильный токен разработчика (я не знаю, как проверить токен устройства без инструментов Mac и разработчика). Вас может смутить тот факт, что я пытаюсь запросить рабочий URL, но это было из-за отчаяния.   -  person gorodezkiy    schedule 13.04.2012


Ответы (2)


Когда у меня возникла эта проблема, оказалось, что ключ и сертификат не совпадают. Попробуйте подключиться с помощью openssl:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert cert.pem -key key.pem

Пока это не выдаст кучу вещей, начинающихся с «CONNECTED», вы не подключаетесь должным образом.

person ostergaard    schedule 07.05.2012
comment
Можете ли вы уточнить, какая куча вещей указывает на правильное соединение? - person aroth; 07.09.2012
comment
Ну... Вывод начинается с «CONNECTED», но затем у вас может быть сотня строк подробностей о соединении. Когда сертификат и ключ не совпадают, вы получаете что-то вроде: error setting private key 140735150221756:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:331: - person ostergaard; 28.09.2012

Мы столкнулись с той же проблемой. Проблема была в профиле предоставления: это была работа, но для песочницы это должна быть разработка. Более подробное описание мы нашли в этом комментарии

person Valera Dubrava    schedule 13.02.2014