您的位置:首页 > 编程语言 > PHP开发

PHP 苹果消息推送

2016-11-29 23:00 183 查看
/*
*  苹果消息推送方法
*  $deviceToken 苹果设备token
*  $message     消息内容
*/
function iosmsg_send($deviceToken,$message){
$message = strlen($message)>40?mb_substr($message,0,40,'utf-8'):$message;

$ctx = stream_context_create();

stream_context_set_option($ctx, 'ssl', 'local_cert', substr(dirname(__FILE__),0,-30).'test\productionPush.pem');//证书路径

stream_context_set_option($ctx, 'ssl', 'passphrase', '123456');

// Open a connection to the APNS server

//这个为正式的发布地址

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

//这个是沙盒测试地址,发布到appstore后记得修改

//$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;
// Create the payload body
$body['aps'] = array(

'alert' => $message,

'sound' => 'default'

);

// Encode the payload as JSON

$payload = json_encode($body);

// Build the binary notification

$msg = chr(0) . pack('n', 32).pack('H*',$deviceToken).pack('n', strlen($payload)).$payload;
// Send it to the server

$result = fwrite($fp, $msg, strlen($msg));
if (!$result)
echo 'Message not delivered' . PHP_EOL;

else

echo 'Message successfully delivered' . PHP_EOL;

// Close the connection to the server

fclose($fp);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: