2010-10-22 20 views
0

Je peux envoyer une notification push à iphone succès avec le certificat ck.pem à travers gateway.sandbox.push.apple.com dans l'environnement de développement.push service de notification de notification

Mais je veux accéder feedback.sandbox.push.apple.com, je suis l'erreur comme suit:

Warning: stream_socket_client() [function.stream-socket-client]: SSL operation failed with code 1. OpenSSL Error messages: error:14094414:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate revoked in /Applications/XAMPP/xamppfiles/htdocs/iphone/freebackFromApple.php on line 8

Warning: stream_socket_client() [function.stream-socket-client]: Failed to enable crypto in /Applications/XAMPP/xamppfiles/htdocs/iphone/freebackFromApple.php on line 8

Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://feedback.sandbox.push.apple.com:2196 (Unknown error) in /Applications/XAMPP/xamppfiles/htdocs/iphone/freebackFromApple.php on line 8 Failed to connect feedback server: 0

Mon code php comme suit:

<?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); 
?> 

Répondre

0

On dirait une erreur de certificat. Avez-vous vérifié sur le site Web d'approvisionnement d'Apple si vos certificats SSL sont à jour?

Vous devez également spécifier le fichier de clés, à côté du fichier cert.

1

Rendez-vous sur le site Web d'approvisionnement d'Apple pour essayer de télécharger à nouveau les certificats à associer à ck.pem, puis placez-le sur le site de votre serveur. Ca marche pour moi, ya.