Я делаю pushnotification для передачи в сберегательной книжке. Push works, но ничего не показывает для pushnotification, и если обновление статически, переключая заднюю часть прохода, я могу получить обновленный проход. Это код я использую:
Отправить push на многие устройства для передачи
<?php
// Provide the Certificate and Key Data.
$cert = '../certificates/Certificates.pem';
$payload = json_encode (array("aps" => ""));
error_log('payload :'.$payload,0);
// Create the and config the socket context.
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $cert);
$password = '';
if (strlen($password))
stream_context_set_option($tContext, 'ssl', 'passphrase', $password);
// Open the Connection to the APNS Server.
$ConnectAPNS = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $streamContext);
$query1 = mysql_query("select deviceID from registration");
$row1 = mysql_fetch_array($query1);
$deviceID = $row1['deviceID'];
if(!empty($deviceID)){
$query2 = mysql_query("select pushToken from device ");
while($row2 = mysql_fetch_array($query2)){
$pushToken= $row2['pushToken'];
// Compose and pack the push message
$apns_message = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $pushToken)) . chr(0) . chr(mb_strlen($payload)) . $payload;
$success = fwrite($ConnectAPNS, $apns_message);
// Check if we were able to open a socket.
if ($success)
error_log(date('d-m-Y hh:ii:ss', time()) . ': APNS Message successfully sent to push token ' . $pushToken, 0);
else
error_log(date('d-m-Y hh:ii:ss', time()) . ': Push error:' . $err . ': ' . $errstr);
error_log('Stream Response: ' . print_r($success, true), 0);
}
}
// Close the Connection to the Server.
@socket_close($ConnectAPNS);
fclose ($ConnectAPNS);
include("feedback.php");
?>
`
Используя этот код, может быть 30 МНБА, что я могу получить pushnotification для обновления прохода! Это ошибка, которую я получаю: `7 мая 13:33:21 CamMobs-iPod4 passd [21865]: Слишком много слишком торопится для pass.cam-mob.passbookpasstest - будет применяться ограничение жесткой скорости.
Как нажимать без этой ошибки?
Я пытаюсь уже, но он петли 3 раза, а не работает! – malinchhan
вы смотрите код, который я редактирую выше! – malinchhan
Что не работает? Если вы получаете одно и то же сообщение об ошибке, это может быть связано с тем, что Apple все еще дросселирует вас из-за вашего более раннего поведения! Вы можете оставить его на некоторое время или выдать другой сертификат и попробовать с ним (вам нужно будет снова переиздать все пропуски с новым сертификатом). – PassKit