Wir haben ein Produktionsspiel, das PayPal als eine der Zahlungsmethoden verwendet. In einigen Fällen erhalten wir keine Webhook-Benachrichtigungen.PayPal Webhook-Veranstaltungen werden nie gesendet?
Hier ist die Reihenfolge, die auftritt. Manchmal bekommen wir den Webhook von dieser Sequenz und manchmal nicht. Auf dem Server verwenden wir die Java-API. All dies ist das Verhalten bei den PayPal-Servern der Produktion (NICHT SANDBOX).
- Nachdem der Benutzer ein Produkt ausgewählt hat, ruft es unseren Server an, der das Payment-Objekt über Payment.create() erstellt. An diesem Punkt wird der Status "erstellt" und wir leiten den Benutzer an die in den Links zurückgegebene "approval_url" um.
- Der Benutzer genehmigt die Zahlung und wird an unseren Server zurückgesendet. Wir holen die Zahlung über Payment.get(), die erfolgreich ist und den Status "erstellt" hat.
- Wir führen die Zahlung mit einer PaymentExecution aus. Dies gibt die Zahlung mit einem aktualisierten Status "genehmigt" zurück.
- Wir warten dann auf einen WebHook, um uns zu informieren, dass die Zahlung abgeschlossen wurde. Gelegentlich wird dieser Webhook niemals gesendet, wodurch der Kauf unvollständig bleibt. Beim Überprüfen der PayPal-Konsole ist kein Webhook-Ereignis für die Zahlung vorhanden, obwohl die Zahlung als abgeschlossen angezeigt wird.
Die Frage lautet hier:
- Ist das die richtige Reihenfolge? Oder fehlt etwas?
- Sollte die Zahlung nicht "genehmigt" werden, wenn der Benutzer von PayPal zurückgegeben wird, anstatt immer noch "erstellt" zu werden?
- Sollte die Zahlung nach einer erfolgreichen Ausführung nicht entweder "completed" oder "in_progress" sein?
- Wie ist der richtige Umgang mit dem Fall, wo der Webhook niemals ankommt? Halten Sie die Zahlung ab, bis der Status aktualisiert wird?
Der fehlende Webhook-Aufruf wurde als Incident 160508-000086 gemeldet. – mzen