APNS not deliver to device

255 Views Asked by At

We are using below php script to send notification to iOS device.
Previously it was also working fine and iOS getting notification. but all of sudden iOS stop getting notification.

<?php

$deviceToken = '37ec1260b9eeba7bcd95bbc444a49ed6bc6e4d10f6a184e7394b610c79603d44';

$passphrase = '123456';

$message = 'Your message';


$ctx = stream_context_create(); stream_context_set_option($ctx, 'ssl', 'local_cert', 'ios-notification.pem'); stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

// Open a connection to the APNS server $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

if (!$fp)
    exit("Failed to connect: $err $errstr" . PHP_EOL);

echo 'Connected to APNS' . PHP_EOL;


$body['aps'] = array(
    'alert' => array(
        'body' => $message,
        'action-loc-key' => 'Bango App',
    ),
    'badge' => 2,
    'sound' => 'oven.caf',
    );

$payload = json_encode($body);

// Build the binary notification $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;


$result = fwrite($fp, $msg, strlen($msg));

if (!$result)
    echo 'Message not delivered' . PHP_EOL; else
    echo 'Message successfully delivered' . PHP_EOL;

fclose($fp); ?>

When we call this php script it show message 'Message successfully delivered' but iOS Device not received any notification.
we have created certificate using Apple Push Notification service SSL (Sandbox & Production). we have checked wether p12 and pem is valid or not using https://www.pushtry.com/ site. When we sent notification from this portal we got notification but same way If we tried using above php script it was not delivered.

0

There are 0 best solutions below