道歉,如果这是一个基本的,但似乎无法在任何地方找到确切的解决方案。
有一个用于APNS设置并正常工作的php代码。现在已经获得了密码保护的生产pem文件。
请指示在php中传递密码参数的位置/方式。推送代码如下:
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = GetPemUrl();
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 10, STREAM_CLIENT_CONNECT, $streamContext);
$sent = False;
if ($apns) {
$apm = fwrite($apns, $apnsMessage);
if ($apm)
{
$sent = true;
}
else
{
$sent = FALSE;
}
//socket_close($apns);
fclose($apns);
}
答案 0 :(得分:3)
共同偶然发现了解决方案,并在发布以防其他人可能需要它。 添加另一个选项来流式传输上下文,如下所示:
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
stream_context_set_option($streamContext, 'ssl', 'passphrase', "pem file passphrase"); // simlply add this
以下是完整帖子的链接:
http://learn-php-by-example.blogspot.com/2013/01/working-with-apple-push-notification.html