对于 APNS,我尝试过使用我的证书和 Web 脚本(.php 文件),并且一切正常。现在我正在尝试使用客户端提供的证书做同样的事情,他已经向我发送了他的 .p12 文件,我已经完成了所有正确的 stpes 并为服务器生成了 .pem 文件,但它无法正常工作。我没明白为什么会这样??有人对此有想法吗?这是我用来发送通知的服务器文件。
<?PHP
if($_POST['message'])
{
$deviceToken = '<my device token id>';
$message = stripslashes($_POST['message']);
$payload = '{
"aps" :
{ "alert" : "'.$message.'",
"badge" : 3,
"sound" : "bingbong.aiff"
}
}';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', '<my passPharse>');
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
if(!$fp){
print "Failed to connect $err $errstrn";
return;
} else {
print "Notifications sent!";
}
$devArray = array();
$devArray[] = $deviceToken;
foreach($devArray as $deviceToken){
$msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack ("n",strlen($payload)) . $payload;
//print "sending message :" . $payload . "n";
fwrite($fp, $msg);
}
fclose($fp);
}
?>
<form action="send-notification.php" method="post">
<input type="text" name="message" maxlength="100">
<input type="submit" value="Send Notification">
</form>
该文件适用于我的 .pem 文件,但在我的客户端文件中出现错误“无法连接 0”。我无法找到它的原因。
如果有人对此有所了解,请指导/告诉我解决问题的途径,拜托。
先感谢您。