iOS Push-Benachrichtigung Sendefehler

7

Ich bin Entwickler für iOS-Apps und weiß nicht viel über PHP. Ich folge raywernlich Push Notification Tutorial Generieren Sie ein SSL-Zertifikat und einen privaten Schlüssel für die Push-Benachrichtigung.

Ich habe die Schritte 3-4 mal gemacht, aber es funktioniert nicht. Ich hatte vorher die gleichen Schritte gemacht und es hat funktioniert.

Ich denke, das Problem liegt in der Antwort, die ich erhalte, wenn ich die Verbindung zum APNS-Server mit einem SSL-Zertifikat überprüfe. Ich komme unter Antwort.

%Vor%


Zu Beginn der Antwort gibt es den Fehler verify error:num=20:unable to get local issuer certificate . Im späteren Teil der Antwort heißt es auch No client certificate CA names sent . Ich bin mir dieser Dinge nicht bewusst, aber ich vermute, dass das Problem bei diesen Fehlern liegt.

BEARBEITEN: Fehler, den ich beim Senden von Benachrichtigungen mit Hilfe des im Tutorial bereitgestellten Beispiel-PHP-Skripts erhalte.

%Vor%

BEARBEITEN: Mit dieser App (vorgeschlagen von segev in seiner Antwort) habe ich getestet, ob ein Problem mit dem Zertifikat / privaten Schlüssel vorliegt. Ich könnte eine Benachrichtigung erfolgreich erhalten. Also ich denke, das Problem ist nicht mit Zertifikat / privaten Schlüssel.

PHP-Skript, das ich verwende:

%Vor%

BEARBEITEN: Mein Skript funktioniert, wenn ich es auf dem Produktionsserver verwende. Aber ich werde diese Frage offen halten, da sie nicht auf dem lokalen Server funktioniert. Vorschläge könnten anderen helfen, für die es auf dem Produktionsserver nicht funktioniert.

    
Geek 25.02.2014, 13:12
quelle

3 Antworten

1

Ich weiß nicht, was das Problem war, wenn ich mit PHP-Skript getestet habe, das von dem Tutorial bereitgestellt wurde, das ich auf dem lokalen Server verfolgt habe. Aber als ich den Produktionsserver getestet habe, hat er Benachrichtigungen gesendet.

    
Geek 08.03.2014, 10:47
quelle
3

Es gibt so viele Dinge, die mit Push Notification schiefgehen, dass Sie sich ihnen einzeln nähern müssen.

Vergiss den PHP-Code für eine Sekunde. Gehen Sie hier und laden Sie die neueste Version herunter.

Dies ist eine großartige kleine App, die alle Serverseiten für Sie erledigt und eine Push-Benachrichtigung an Ihr Gerät sendet. Wenn das klappt, kannst du weitermachen und den PHP-Code implementieren, aber ich vermute, dass dein Problem mit dem App-Zertifikat \ key liegt.

    
Segev 25.02.2014 13:55
quelle
3

Siehe den Fehler:

  

VERBUNDEN (00000003) Tiefe = 1 / C = US / O = Vertrauen,   Inc./OU=www.entrust.net/rpa wird durch Bezugnahme / OU = (c) 2009 aufgenommen   Entrust, Inc./CN=Entrust Certification Authority - L1C verifizieren   Fehler: num = 20: lokales Ausstellerzertifikat kann nicht überprüft werden. Rückgabe: 0

Sehen Sie, wie Sie den Kontext für die Stream-Option angewendet haben:

%Vor%

Ich habe das gleiche Tutorial wie Sie, auf der Troubleshooting-Sektion lesen Sie die Kugel # 3

  

Das lokale Ausstellerzertifikat konnte nicht abgerufen werden. Dieser Fehler bedeutet, dass der   Zertifikat vom Server konnte nicht verifiziert werden. Um das zu beheben   müssen Sie das Entrust CA-Stammzertifikat herunterladen. Das kann gemacht werden   aus dem Terminal mit dem Befehl: curl -O    Ссылка Sie dann   muss auch stream_context_set_option ($ ctx, 'ssl', 'cafile',   'trust_2048_ca.cer');

Laden Sie trust_2048_ca.cer

herunter

Stellen Sie sicher, dass sich alle Zertifikate im selben Verzeichnis wie das PHP-Skript befinden.

Ändern Sie Ihren Code wie folgt:

%Vor%

Du solltest jetzt gut sein.

    
meda 27.02.2014 14:53
quelle