Я работаю над проектом на PHP, который требует, чтобы я отправил уведомление о предупреждении на сервер APNS. Я использовал расширенный формат push-уведомлений. но я не получаю ответа, как указано в документах APNS. Я получаю ответ в виде трех цифр, обычно 133, 132, 154, 138 и т. д. Я пришел к выводу, что это знаки состояния, например. 133 — это 1, 3, 3. но теперь я также получил 139. поэтому я сомневаюсь, что моя интерпретация ответа неверна. Но я не понимаю, где это неправильно. И важно то, что я получаю эти ответы. Оповещение отправляется, и я получаю уведомление на свой iPhone, а также на iPad.
Мой код выглядит следующим образом:
$payload['aps'] = array('alert' => $message, 'badge' => 1, 'sound' => 'default');
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195; // default port
$apnsCert = 'apns-dev.pem'; // APNS crtificate.
$passPhrase = '';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
stream_context_set_option($streamContext, 'ssl', 'passphrase', $passPhrase);
try{
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);
if (!$apns) {
print "Failed to connect {$error} {$errorString}\n";
}
else {
// Sending the payload
$apnsMessage = chr(0) . pack('n', 1) . pack('n', $nid) . pack('n', time() + 604800) . pack('n', 32) . pack('H*', str_replace(' ', '', $alert_device_token)) . pack('n', strlen($payload)) . $payload;
echo 'APNS Message: ' . $apnsMessage;
$fwrite = fwrite($apns, $apnsMessage);
echo 'APNS response: ' . $fwrite;
И когда это выполняется, я получил следующий ответ, напечатанный в браузере:
Сообщение APNS: ��=ŸÂ� òc6–U:õŸŠ ¸Þ ÷ćÚ0ßqšÊzÂífÕnZ�`{"aps":{"alert":"Ваша цена оповещения о ПРОДАЖЕ EUR\/USD достигнута!","значок": 1,"sound":"default"}}Ответ APNS: 139
Может кто-нибудь, пожалуйста, скажите мне, что здесь означает это 139. я делаю что-то неправильно здесь.