Apple push notification with cURL Apple push notification with cURL curl curl

Apple push notification with cURL


Here is the code for device token and json message,I think this will help you.

$url = 'https://gateway.sandbox.push.apple.com:2195';$cert = 'AppCert.pem';$ch = curl_init();curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_SSLCERT, $cert);curl_setopt($ch, CURLOPT_SSLCERTPASSWD, "passphrase");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"device_tokens": ["458e5939b2xxxxxxxxxxx3"], "aps": {"alert": "test message one!"}}');$curl_scraped_page = curl_exec($ch);


This code works

$deviceToken = '...';$passphrase = '...';$message = '...';$ctx = stream_context_create();stream_context_set_option($ctx, 'ssl', 'local_cert', 'xxx.pem');stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);$body['aps'] = array('alert' => $message,'sound' => 'default');$payload = json_encode($body);$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;$result = fwrite($fp, $msg, strlen($msg));fclose($fp);