Теперь я могу отправить push-токен с устройства, которое уже установило пропуск, но я не знаю, как работает обратная связь в этом пункте. Из документов Apple служба Apple Push Notification (APNs) обеспечивает обратную связь с сервером, чтобы сообщить, действителен ли pushToken или нет. Как получить эту обратную связь? Я пробую этот код, но много ошибок. Это код:
Как получить обратную связь от APN при отправке push-уведомления
<?php
$cert = '/Applications/MAMP/htdocs/passesWebserver/certificates.pem';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', $cert);
stream_context_set_option($ctx, 'ssl', 'verify_peer', false);
$fp = stream_socket_client('ssl://feedback.sandbox.push.apple.com:2196', $error, $errorString, 60, STREAM_CLIENT_CONNECT, $ctx);
// production server is ssl://feedback.push.apple.com:2196
if (!$fp) {
error_log("Failed to connect feedback server: $err $errstr",0);
return;
}
else {
error_log("Connection to feedback server OK",0);
}
error_log("APNS feedback results",0);
while ($devcon = fread($fp, 38))
{
$arr = unpack("H*", $devcon);
$rawhex = trim(implode("", $arr));
$feedbackTime = hexdec(substr($rawhex, 0, 8));
$feedbackDate = date('Y-m-d H:i', $feedbackTime);
$feedbackLen = hexdec(substr($rawhex, 8, 4));
$feedbackDeviceToken = substr($rawhex, 12, 64);
error_log ("TIMESTAMP:" . $feedbackDate, 0);
error_log ("DEVICE ID:" . $feedbackDeviceToken,0);
}
fclose($fp);
?>
Просто убедитесь, что если я хорошо понял, код, который вы написали, возвращает массив токенов, которые больше недействительны? Тогда моя работа - удалить из mysql ... – user1576208
Да, это правильно. – PassKit
Спасибо, друг! – user1576208