3

道歉,如果这是一个基本但似乎无法在任何地方找到确切的解决方案。

有一个用于 APNS 设置和正常工作的 php 代码。现在已经获得了受密码保护的生产 pem 文件。

请指示在哪里/如何在 php.ini 中传递该密码参数。推送代码如下:

 $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);
}
4

1 回答 1

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

于 2014-10-16T19:07:12.553 回答