Überblick
Erstattungen können durch eine aktive Nutzeraktion (Drücken der Schaltfläche „Erstattung“) oder automatisch im Namen des Nutzers veranlasst werden. Unabhängig vom Auslöser wird eine asynchrone Erstattungsanfrage von Google an den Zahlungsintegrator gesendet. Der Integrationspartner muss die Anfrage bestätigen und Google benachrichtigen, sobald die Erstattung abgeschlossen ist.
Ablauf
Erstattungsablauf
Hier ist ein Beispiel für einen asynchronen Erstattungsablauf, der vom Nutzer initiiert wurde:
Hier ist die Liste der Objekte im obigen Diagramm:
- Nutzer: Die Person, die eine vollständige oder teilweise Erstattung möchte.
- Google-Server: Der Back-End-Server bei Google, der den Erstattungsbefehl an den Zahlungsintegrator sendet.
- Zahlungsintegrator: Der Integrator, der die Erstattungsanfrage an den entsprechenden Aussteller weiterleitet.
- Aussteller: Der für die Zahlung verwendete Aussteller, der den Erstattungsantrag akzeptiert.
Die Erstattung wird in diesem Beispiel vom Nutzer veranlasst.
- Der Nutzer veranlasst die Erstattung an den Google-Server.
- Google ruft den
AsynchronousRefund
-Endpunkt des Zahlungsintegrators auf. - Der Integrator sendet eine
Acknowledged
-Antwort an Google. - Der Integrator ruft den entsprechenden
Refund
-Endpunkt des Ausstellers auf. - Der Aussteller verarbeitet die Erstattung und antwortet dem Integrator mit
Success
. - Der Integrator ruft den
RefundResultNotification
-Endpunkt auf dem Google-Server auf, um Google über das Ergebnis zu informieren. - Google erkennt die
RefundResultNotification
an. - Google aktualisiert das verfügbare Guthaben des Nutzers.
- Der Nutzer erhält eine Erstattung.
Best Practices und weitere Überlegungen
In einigen Google-Produkten wie etwa AdWords sind Erstattungen möglich, solange das Guthaben im Konto vorhanden ist. Erstattungen für Transaktionen sollten deshalb auf unbestimmte Zeit möglich sein. Wenn eine technische Einschränkung besteht, sollte der Erstattungszeitraum so lang sein, wie es Ihre Plattform zulässt.
Erstattungen können nur abgelehnt werden, wenn das Guthaben bei der ursprünglichen Transaktion nicht ausreicht, um den Erstattungsbetrag zu decken, oder das Konto geschlossen wurde oder ausgesetzt ist und der Integrator dem Nutzer dieses Geld nicht senden kann.
Erstattungen können innerhalb von Sekunden nach der Aufnahme veranlasst werden. Der Zeitpunkt der Erstattungen liegt im Ermessen von Google.
Eine Erstattung sollte niemals als vollständige Erstattung angesehen werden. Das Feld refundAmount
muss bei der Erstattung des Kontos immer berücksichtigt werden.
Es müssen mehrere Teilerstattungen unterstützt werden. Beispiel: Eine Transaktion in Höhe von 11,00 € findet statt und ein Nutzer kann bei der ursprünglichen Transaktion teilweise Erstattungen in Höhe von 4,00 €, 5,00 € und 1,00 € erhalten. In diesem Fall haben alle drei Erstattungen denselben captureRequestId
, aber unterschiedliche requestId
-Werte. Außerdem wäre für diese Transaktion nur 1, 00 $übrig.
Nehmen wir nun an, es gibt einen Kauf in Höhe von 12,00 €. In diesem Beispiel kann der Nutzer zwei Erstattungen in Höhe von jeweils 6,00 $vornehmen. Wenn diese beiden Erstattungen unterschiedliche requestId
-Werte und denselben captureRequestId
-Wert haben, müssen sie als separate Erstattungen für dieselbe Transaktion behandelt werden. Sobald die Erstattungen abgeschlossen sind, verbleiben in diesem Fall 0 $für die Transaktion.