Почему могут не приходить пуш уведомления на ios (php apns)?

Добрый день,
от разработчика ios получил .pem сертификат и token моего устройства для отправки пуш уведомлений с сервера.

Отправляю уведомление следующим способом:
<?
$token   = 'ххх';
$message = 'Hello';
$badge   = 1;
$sound   = 'default';
$cert    = __DIR__ . '/cert.pem';
$payload = json_encode(array(
    'aps' => array(
        'alert' => $message,
        'badge' => (int) $badge,
        'sound' => $sound
    )
));
$apns_message = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $token)) . chr(0) . chr(strlen($payload)) . $payload;

$stream_context = stream_context_create();
    stream_context_set_option($stream_context, 'ssl', 'local_cert', $cert);

$apns   = stream_socket_client('ssl://gateway.push.apple.com:2195', $error, $error_string, 2, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $stream_context);
$result = fwrite($apns, $apns_message, strlen($apns_message));

@socket_close($apns);
@fclose($apns);
echo '<pre>Result:<br>';
var_dump($result); // int(90)
echo '<br>Error:<br>';
var_dump($error); // int(0)
echo '<br>Error String:<br>';
var_dump($error_string); // string(0) ""


ошибок нет, но в результате не получаю уведомлений на iphone. В чем может быть проблема?

Приложение установлено при помощи TestFlight.
  • Вопрос задан
  • 423 просмотра
Решения вопроса 1
ZetRider
@ZetRider Автор вопроса
web
Ошибка была в сертификате.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы