Мы используем apns-php для внедрения службы push-уведомлений и столкнулись с этой проблемой в последнее время:
Push-уведомления работают с нашим профилем разработки и не работают для Production.
Мы не получаем ошибок с серверов apple, и мы видим, что они работают нормально. Вот журнал
2012/05/09 07:26:50 [trace] [push_notification] APNS: INFO: Trying ssl://gateway.push.apple.com:2195... 2012/05/09 07:26:51 [trace] [push_notification] APNS: INFO: Connected to ssl://gateway.push.apple.com:2195. 2012/05/09 07:26:51 [trace] [push_notification] APNS: Added recipient iPad with YSA_ID:209 2012/05/09 07:26:51 [trace] [push_notification] APNS: Added recipient iPad with YSA_ID:323 2012/05/09 07:26:51 [trace] [push_notification] APNS: Added recipient iPad with YSA_ID:326 2012/05/09 07:26:51 [trace] [push_notification] APNS: INFO: Sending messages queue, run #1: 3 message(s) left in queue. 2012/05/09 07:26:51 [trace] [push_notification] APNS: STATUS: Sending message ID 1 [custom identifier: YSA-Notification-ID#181] (1/3): 121 bytes. 2012/05/09 07:26:51 [trace] [push_notification] APNS: STATUS: Sending message ID 2 [custom identifier: YSA-Notification-ID#181] (1/3): 121 bytes. 2012/05/09 07:26:51 [trace] [push_notification] APNS: STATUS: Sending message ID 3 [custom identifier: YSA-Notification-ID#181] (1/3): 121 bytes. 2012/05/09 07:26:52 [trace] [push_notification] APNS: INFO: Disconnected.
Итак, вы можете видеть, что ошибок нет. Но никаких уведомлений, полученных на iPad.
Может, кто-то столкнулся с этой проблемой раньше? Любая помощь будет высоко оценен.
Благодаря!
Где-то я читал, что оба сертификата SSL могут быть помещены в один файл PEM. К сожалению, этот намек, похоже, не был правильным …
Я обнаружил, что наличие как SSL, так и SSL-сертификата в одном файле PEM приводит к тому, что производственная среда отключается.
Решение состоит в том, чтобы разделить PEM на два отдельных файла и передать их на сервер соответственно:
$server=new ApnsPHP_Push_Server(ApnsPHP_Abstract::ENVIRONMENT_SANDBOX, 'server_certificates_bundle_sandbox.pem');
или
$server=new ApnsPHP_Push_Server(ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION, 'server_certificates_bundle_production.pem');
После этого все сработало нормально.
пожалуйста, также проверьте, активировано ли ваше объявление идентификатора приложения