2016-12-21 3 views
0

Mein PHP-Skript gibt immer Fehlercode 0 für Apple-Push-Benachrichtigung. Der Code, den ich verwendet wird, unterApple Push-Benachrichtigung funktioniert nicht in PHP

$ctx = stream_context_create(); 
stream_context_set_option($ctx, 'ssl', 'passphrase', ''); 
stream_context_set_option($ctx, 'ssl', 'local_cert', 'TxxxProd.pem'); //TxxxDev.pem 
$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 
stream_set_blocking ($fp, 0); 

$err immer 0 zurück

gegeben, was wir auf dem Server geändert haben, ist, dass wir aktualisiert haben wird php Version und ssl Zertifikat erneuert.

aktuelle PHP-Version ist PHP Version 5.6.29

Da der Code vor funktioniert, ich kann es nicht herausfinden, warum es jetzt nicht funktioniert. Als Anfänger ist mir die .pem Datei im Server nicht bekannt?

Müssen wir einige Änderungen an dieser .pem Datei vornehmen?

Screenshot für Kommandozeile angegeben wird unter Openssl command

Antwort

0

die Sie interessieren,

<?php 
$ctx = stream_context_create(); 

stream_context_set_option($ctx, 'ssl', 'local_cert', 'TxxxProd.pem'); //TxxxDev.pem 

$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 
stream_set_blocking ($fp, 0); 


$tHost = 'gateway.sandbox.push.apple.com'; 

$tPort = 2195; 

$tToken = '*****************'; 

$tAlert = 'Hi this is a test message from vineeth'; 

$tBadge = 8; 

$tSound = 'default'; 

$tPayload = 'APNS Message Handled by LiveCode'; 

$tBody['aps'] = array (
'alert' => $tAlert, 
'badge' => $tBadge, 
'sound' => $tSound, 
); 

$tBody ['payload'] = $tPayload; 

$tBody = json_encode ($tBody); 

$tSocket = stream_socket_client ('ssl://'.$tHost.':'.$tPort, $error, $errstr, 30, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $tContext); 

if (!$tSocket) 

exit ("APNS Connection Failed: $error $errstr" . PHP_EOL); 

$tMsg = chr (0) . chr (0) . chr (32) . pack ('H*', $tToken) . pack ('n', strlen ($tBody)) . $tBody; 

// Send the Notification to the Server. 

$tResult = fwrite ($tSocket, $tMsg, strlen ($tMsg)); 

if ($tResult) 

echo 'Delivered Message to APNS' . PHP_EOL; 

else 

echo 'Could not Deliver Message to APNS' . PHP_EOL; 

// Close the Connection to the Server. 

fclose ($tSocket); 

?> 
+0

Ich habe den gleichen Fehler "APNS Verbindung fehlgeschlagen:". Ich habe versucht mit $ tHost = 'gateway.push.apple.com'; und $ tHost = 'gateway.sandbox.push.apple.com'; Ich habe oben einen Screenshot in meiner Bearbeitung beigefügt – Ajith