Обновить кошелек Passbook не удалось подключиться

я столкнулся с push-уведомлением об обновлении кошелька, я использовал приведенный ниже код, ошибка сервера не подключена.

Я пропустил какие-либо учетные данные. Пожалуйста, помогите мне, исправьте эту проблему.

Я зарегистрировал свою сберегательную книжку и вернул push-токен на сервер.

этот ключ такой же, как ключ сертификата генерации сберегательной книжки.

            $certifile = 'passbook/certificates/AppleWWDRCA.pem'; 
            $passphrase = 'xxxxxxxx';
            $trust ='';
            $url = 'ssl://gateway.push.apple.com:2195';
            $ctx = stream_context_create();
            stream_context_set_option($ctx, 'ssl', 'local_cert', $certifile);
            stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
            $fp = stream_socket_client($url, $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;
            $body['aps'] = array(
                'alert' => $message,
                'sound' => 'default',
                'pushToken'=>'xxxxxxxxxxxxxx',
                 'passTypeId'=>'xxxxxxxxx'

            );

            $payload = json_encode($body);

            $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;

            $result = fwrite($fp, $msg, strlen($msg));

        // Close the connection to the server
                fclose($fp);

Пожалуйста, помогите мне.


Подключен к серверу. Но у меня ошибка при отправке push-уведомлений.

$body['aps'] = array( );
$msg = chr(0) . pack('n', 32) . pack('H*', $pushToken) . pack('n', strlen($payload)) . $payload;

if (!$result)
            echo 'Message not delivered' . PHP_EOL;
        else
            echo 'Message successfully delivered' . PHP_EOL;

Сообщение не доставлено: 10053.

время бронирования пользователя динамически создается и отображается на устройстве.

если пользователь изменяет дату бронирования. Мне нужно динамически обновлять дату и время бронирования, чтобы пользователь прошел через push-уведомление.

кто-нибудь, пожалуйста, помогите мне обновить мою сберкнижку.


person srivathi    schedule 14.01.2016    source источник


Ответы (1)


проверьте здесь код PHP (первый ответ). Это работа для меня. Ответ об ошибке чтения расширенного push-уведомления Apple в PHP

Вы используете неверный сертификат. Вы должны сделать файл pem из вашей сертификации (p12) путем экспорта из цепочки для ключей.

Как сделать файл P12 и PEM из файла cer
1. Переместите в папку сохранения
2. Откройте терминал и перейдите в эту папку
openssl x509 -inform der -in aps_development.cer -out certificate.pem< br> openssl pkcs12 -nocerts -in Certificates.p12 -out p12Certificates.pem
[введите пароль для .p12 и пароль для .pem]
cat certificate.pem p12Certificates.pem > apns_cert.pem

person Singha    schedule 14.01.2016