Ungültiges Token bei Verwendung von Apple Push Notifications (APN) für Passbook

8

Ich versuche, eine serverseitige Implementierung für den APN-Sparbuch zu erstellen, aber der Server mag das Push-Token nicht, das das Gerät mir gibt. Wenn ich das Token an den Sandbox-Server von Apple sende, sendet es mir eine "ungültige Token" -Antwort. Wenn ich das Token an den Produktionsserver von Apple sende, wird das Token im Feedback-Dienst als eines zurückgegeben, das ich aus meiner Liste entfernen sollte. Zumindest weiß ich, dass die APN-Zertifikate und die Verbindung zum Server gut funktionieren.

Mein iPhone 4s wurde für die Entwicklung aktiviert. Die APP ID ist sowohl für die Entwicklung als auch für die Produktion aktiviert und das Gerät ist in den Bereitstellungsprofilen aktiviert. Ich habe überprüft, dass die 32-Byte-Binär-Token-Daten in Bezug auf das Zeichenfolge-Token korrekt sind, das vom Gerät gesendet wird.

Eine Frage, die ich habe, ist, wie legt das Sparbuch im Gerät fest, welches Token zu verwenden ist (Entwicklung vs. Produktion)? Ich würde es vorziehen, die Sandbox-Umgebung jetzt zu verwenden, aber ich bin mir nicht sicher, wie ich sie "auswählen" soll.

Ich habe ähnliche Themen für dieses Thema gesehen, aber keine scheint die Antwort für dieses Problem zu haben. Es ist wirklich frustrierend, da ich fühle, dass ich so nahe daran bin, das zu schaffen! Vielen Dank im Voraus für einen Rat!

    
Mike 17.02.2013, 19:51
quelle

4 Antworten

10

Wenn Sie ein Produktionszertifikat zum Herstellen einer Verbindung zum APN-Produktionsserver verwenden, müssen Sie ein Produktionstoken verwenden.

Die Tatsache, dass Sie beim Senden der Benachrichtigung an den Sandbox-Server ein "ungültiges Token" erhalten, bedeutet, dass Sie ein Produktionstoken verwenden, das nur mit dem Produktionsserver funktioniert.

Die Tatsache, dass das Senden des Tokens an den Produktionsserver das Token im Feedbackdienst zurückgibt, bedeutet, dass die Anwendung, die dem Zertifikat entspricht (das der Server zum Senden der Benachrichtigung verwendet), entweder vom Gerät deinstalliert wird oder Push-Benachrichtigungen deaktiviert sind . Vielleicht verwenden Sie ein falsches Zertifikat (möglicherweise ein Zertifikat, das zu einer anderen App gehört, die vom Gerät deinstalliert wurde).

    
Eran 17.02.2013, 20:28
quelle
6

Für Passbook-Push-Vorgänge müssen Sie eine Verbindung zum Produktionsserver mit dem ID des Pass-Typs , nicht mit dem App-Zertifikat herstellen.

Alle Passbook-Push-Vorgänge werden über den Produktionsserver ausgeführt, es gibt keine Möglichkeit, die Sandbox zu verwenden.

Außerdem sollte die Push-Nutzlast für einen Passbook-Push leer sein. Alles, was Sie senden, wird ignoriert.

    
PassKit 18.02.2013 00:08
quelle
4

Die Ursache für dieses Problem gefunden, liegt an einem schlechten privaten Schlüssel. Um dieses Problem zu beheben, generieren Sie einfach ein .p12-Zertifikat mit .pem. Um die p12-Datei mit .pem-Datei zu erstellen, folgen Sie bitte der folgenden Methode

    
pradeep sg 11.04.2016 11:10
quelle
2

Überschreiben Sie die obigen Anweisungen im Textformat, damit Sie sie kopieren / einfügen können. Das war der Trick für mich, PushSharp 4.0.10 gab einen Fehler über ein ungültiges Zertifikat zurück, aber die Ausführung dieser Befehle auf den ursprünglichen öffentlichen und privaten Schlüsseln löst das Problem:

%Vor%     
Yves Rochon 04.10.2016 22:43
quelle