【问题标题】:Push notification is not receiving on device设备未收到推送通知
【发布时间】:2016-01-03 04:42:44
【问题描述】:

我正在通过 PHP 脚本使用推送通知。代码似乎工作正常,它没有给我任何错误。但是我的设备上没有收到通知。

这是我的代码:

$passphrase = '123';
    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert', 'cert.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);
    // 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;

谁能提出其中的问题。

【问题讨论】:

    标签: php ios push-notification ios9


    【解决方案1】:

    试试这个 php 代码: 但是您必须按照您的设置更改设备令牌和密码。您可以从以下链接下载 php 脚本

    http://d1xzuxjlafny7l.cloudfront.net/downloads/SimplePush.zip

    我已经运行了这个 php 脚本,它运行良好..

    【讨论】:

    • 这里是完整的教程链接:raywenderlich.com/32960/…
    • 但我认为不同设备的设备令牌应该不同。我将设备令牌作为参数传递,但它不起作用。
    • 此外,当我运行 openssl verify cert.pem 时,它给了我一个错误,无法获取本地颁发者证书
    • 不要使用下载的 cert.pem 文件,创建您自己的 cert.pem 文件并使用密码、消息和设备令牌更新 php 脚本。
    • 如果此时没有收到通知,请不要担心,因为这可能是服务器问题。过一段时间试试。希望它会运行良好,因为我已经成功运行了。
    猜你喜欢
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多