2016-05-12 22 views
0

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).

  1. 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.
  2. 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.
  3. Wir führen die Zahlung mit einer PaymentExecution aus. Dies gibt die Zahlung mit einem aktualisierten Status "genehmigt" zurück.
  4. 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?

Antwort

0

Ich sehe kein Problem mit Ihrer Sequenz. Sie können auch auf die Schritte hier als ein Beispiel verweisen - https://developer.paypal.com/docs/integration/web/accept-paypal-payment/

In Bezug auf Webhooks erwähnten Sie manchmal, dass Sie Webhooks bekommen und nur manchmal Sie nicht. Können Sie bitte für die Anrufe, bei denen Sie keinen Webhook sehen, eine Korrelations- oder Debug-ID angeben? Wir werden Ärger schießen und zurückkommen?

+0

Der fehlende Webhook-Aufruf wurde als Incident 160508-000086 gemeldet. – mzen