Ich kann keine Benachrichtigung an APNS senden, um meinen Pass in Apple Wallet zu aktualisieren.

Ich versuche, eine Benachrichtigung an APNS zu senden, um meinen Pass in der Apple Wallet-App zu aktualisieren. Gemäßdieses Dokumen, wir müssen nur die Kennung des Übergabetyps und das Push-Token an APNs senden. Dann kümmern sie sich um den Rest.

$apnsHost = 'gateway.push.apple.com';
    $apnsPort = 2195;
    $apnsCert = base_path('app/config/passbook/certificates.pem');
    $payload = ['aps' => []];
    $payload = json_encode($payload);

    $streamContext = stream_context_create();
    stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
    stream_context_set_option($streamContext, 'ssl', 'passphrase', 'xxxxxx');

    $apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);

    if(!$apns) {
        Logger::logError(1, "Passbook push notification error", ['serial_number' => $serialNumber, 'pass_type_id' => $passIdentify]);
        return "Failed to connect (stream_socket_client): $error $errorString";
    } else {
        foreach($push_tokens as $idx => $push_token) {
            $msg = chr(0) . pack('n', 32) . pack('H*', $push_token) . pack('n', strlen($payload)) . $payload;

            fwrite($apns, $msg);
        }
    }
    @socket_close($apns);
    fclose($apns);

Es wird kein Fehler zurückgegeben, aber es scheint nicht zu funktionieren. Was mache ich falsch? Bitte helfen Sie.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage