служба обратной связи push-уведомлений - PullRequest
0 голосов
/ 22 октября 2010

Я могу отправить push-уведомление iphone об успехе с сертификатом ck.pem через gateway.sandbox.push.apple.com в среде разработки.

Но я хочу получить доступ к feedback.sandbox.push.apple.com, я получил ошибку следующим образом:

Предупреждение: stream_socket_client () [function.stream-socket-client]: сбой операции SSL с кодом 1. OpenSSL Сообщения об ошибках: ошибка: 14094414: подпрограммы SSL: SSL3_READ_BYTES: сертификат оповещения sslv3 отозван в / Applications / XAMPP /xamppfiles / htdocs / iphone / freebackFromApple.php в строке 8

Предупреждение: stream_socket_client () [function.stream-socket-client]: не удалось включить шифрование в / Applications / XAMPP / xamppfiles / htdocs / iphone / freebackFromApple.php в строке 8

Предупреждение: stream_socket_client () [function.stream-socket-client]: невозможно подключиться к ssl: //feedback.sandbox.push.apple.com: 2196 (неизвестная ошибка) в/Applications/XAMPP/xamppfiles/htdocs/iphone/freebackFromApple.php в строке 8 Не удалось подключиться к серверу обратной связи: 0

Мой код php выглядит следующим образом:

<?php

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', '/Applications/XAMPP/xamppfiles/htdocs/iphone/share/ck.pem');
stream_context_set_option($ctx, 'ssl', 'verify_peer', false);
stream_context_set_option($ctx, 'ssl', 'passphrase', '');
$fp = stream_socket_client('ssl://feedback.sandbox.push.apple.com:2196', $error, $errorString, 60, STREAM_CLIENT_CONNECT, $ctx);

if (!$fp) {
    print "Failed to connect feedback server: $error $errorString\n";
    return;
else {
    print "Connection to feedback server OK\n";
}

print "APNS feedback results\n";
while ($devcon = fread($fp, 38)) {
    $arr = unpack("H*", $devcon);
    $rawhex = trim(implode("", $arr));
    $feedbackTime = hexdec(substr($rawhex, 0, 8));
    $feedbackDate = date('Y-m-d H:i', $feedbackTime);
    $feedbackLen = hexdec(substr($rawhex, 8, 4));
    $feedbackDeviceToken = substr($rawhex, 12, 64);
    print "TIMESTAMP:" . $feedbackDate . "\n";
    print "DEVICE ID:" . $feedbackDeviceToken . "\n\n";
}
fclose($fp);
?>

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Просто зайдите на веб-сайт обеспечения Apple, чтобы попытаться снова загрузить сертификаты для объединения в ck.pem, а затем поместить его на сайт своего сервера. У меня это работает, я.

0 голосов
/ 24 мая 2011

Похоже на ошибку сертификата. Вы проверили на веб-сайте обеспечения Apple, обновлены ли ваши SSL-сертификаты?

Вы также должны указать ключевой файл рядом с сертификатным файлом.

...