PayPal REST API Bestell-Workflow: Zahlung -> Verkauf -> Webhook?

Ich versuche, die PayPal-REST-API in meine Symfony 2-Webanwendung zu integrieren, kann aber nur schwer nachvollziehen, wie genau der gesamte Workflow aussieht:

DasPayPal docs Beschreiben Sie die folgenden Schritte, um eine Zahlung zu akzeptieren. Man kann das @ benutzPayPal Spielplatz um diese Schritte zu simulieren:

Holen Sie sich ein ZugriffstokenErstelle a Payment Objekt durch Abfrage der APILeiten Sie den Benutzer an das @ weitapproval url empfangen in derPayment AntworNachdem der Benutzer die Zahlung auf der PayPal-Seite genehmigt hat, wird er über den im @ definierten Erfolgslink zu meiner Seite zurückgeleitePayment Objekt. Verwenden Sie die erhaltenen Informationen zuausführe die BezahlungZahlung ist mit Status @ abgeschlossapproved

Aus den Dokumenten: EinmalZahlun ist vollständig, es wird als @ bezeichnVerkau. Sie können dann den Verkauf nachschlagen und ihn erstatten.

So weit, ist es gut. ABER Wo werden in diesem Workflow Webhooks verwendet / ausgelöst? Ich habe im PayPal Developer Dashboard einen Platzhalter-Webhook definiert (der alle möglichen Ereignisse akzeptiert).

Meine Beobachtung ist, dass mein System das Webhook-Ereignis empfängt 1-2 Minuten (!) nac der Benutzer wurde zum Erfolgslink zurückgeleitet und nachdem die Zahlung ausgeführt wurde (Schritt 4).

bgesehen von dieser langen Verzögerung zwischen der Ausführung der Zahlung und dem Empfang des Webhooks bedeutet dieser Workflow, dass ich nur den Webhook erhaltNAC Umgang mit dem Erfolgslink.Dies bedeutet, dass die Bearbeitung des Erfolgs-Links unbedingt erforderlich ist, damit die Zahlung abgeschlossen werden kann. Ist das richtig

Muss ich Webhooks verwenden?

Ich habe schon @ gefradiese Frag ein paar Tage zuvor und die Antwort von nifr ist durchaus vernünftig: Man kann dem Benutzer nicht vertrauen, dass er einer Weiterleitungs-URL folgt, sondern sollte sich nur auf die Webhook-Ereignisse verlassen.

Dies kollidiert jedoch mit den Beobachtungen, die ich zuvor beschrieben habe, da ich den Webhook niemals erhalten werde, ohne die Weiterleitungs-URL zu handhaben ...

So, Umgang mit demPAYMENT.SALE.COMPLETED webhook-Ereignis macht nicht viel Sinn, da dies bereits im Umgang mit der Weiterleitungs-URL erfolgen sollte.Richtig

Updates für ausstehende Zahlungen, Rückerstattungen oder stornierte Zahlungen usw. sind jedoch nur möglich, wenn Sie diese Ereignisse abhören.

Also lautet die Antwort: Verwenden Sie nur Webhooks, um Aktualisierungen zu bereits getätigten Zahlungen zu erhalten. Richtig

Also, die Hauptfragen sind:

Der 5-stufige Prozess zum Akzeptieren von Zahlungen sagt nichts über die Verwendung von Webhooks aus. Das scheint nicht viel Sinn zu machen, denn ohne Webhooks würde man Update-Events verpassen, etc.?So, ist es wirklich möglich, den gesamten Zahlungsworkflow ohne Webhooks zu implementieren?Falls ja,Wie werden in diesem Fall Aktualisierungen (Rückerstattungen, ausstehende Aktualisierungen usw.) behandelt?Wenn nein,was ist die richtige Strategie / Zeit, um den Auftrag auszuführen, da es ziemlich lange dauert, bis der Webhook vollständig empfangen und bearbeitet wurde?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage