Riverty Payments: Shop API
Riverty Payments für Sylius - Headless-Betrieb über die Sylius Payment Requests ohne eigene Endpunkte, redirect_url für den Hosted Checkout, Fehlerverhalten und die Grenze bei der Identifikationsnummer
Riverty Payments: Shop API
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Das Plugin ist dual-mode: Storefront und Sylius Shop API nutzen denselben Zahlungsweg. Dafür bringt es keine eigenen Endpunkte mit.
Das Plugin fügt der Shop API keine Endpunkte hinzu. Es gibt keine eigenen Shop-Routen und keine API-Platform-Ressourcen. Stattdessen nimmt es an den Payment Requests teil, die Sylius ohnehin für Storefront und Shop API nutzt. Welche Endpunkte du aufrufst, um eine Zahlung zu starten und ihren Payment Request abzufragen, steht in der Sylius-Dokumentation und nicht hier.
Wie eine Riverty-Zahlung über die API läuft
graph TD
A["Client startet die Zahlung über Sylius Payment Request"] --> B["Command Bus: Autorisierung"]
B --> C["Riverty Plugin ruft Riverty auf"]
C --> D{"Antwort?"}
D -->|Angenommen| E["Zahlung autorisiert"]
D -->|Weiterleitung nötig| F["redirect_url in den Antwortdaten des Payment Requests"]
D -->|Abgelehnt| G["Payment Request und Zahlung schlagen fehl"]
F --> H["Client öffnet den Hosted Checkout"]
H --> I["Statusabfrage oder Abgleich setzt die Zahlung"]
- Der Client löst über die Sylius-Payment-Request-Schnittstelle die Autorisierung der Zahlung aus. Das Plugin ist dafür im Payment-Request-Command-Bus von Sylius für das Gateway
rivertyregistriert und unterstützt die Aktionencapture,authorizeundstatus. - Das Plugin fragt Riverty und führt den Payment Request und die Zahlung gemeinsam weiter.
- Braucht der Kunde den Hosted Checkout, steht die Adresse in den Antwortdaten des Payment Requests unter
redirect_url. Ein reiner JSON-Client bekommt keinen HTTP-Redirect, er liest die Adresse und öffnet sie selbst, zum Beispiel in einem neuen Tab oder einer WebView. - Kehrt der Kunde zurück, setzt die Statusabfrage die Zahlung. Kehrt er nicht zurück, holt
mmd:riverty:reconciledas nach.
Der Transport für Payment Requests muss synchron sein (
sync://), sonst läuft die Autorisierung erst, wenn ein Worker die Queue abarbeitet, und der Kunde bekommt keineredirect_url. Siehe Installation.
Fehler
Das Plugin definiert kein eigenes Fehlerformat. Ein Fehlschlag erscheint als Fehlerzustand des Payment Requests und der Zahlung in Sylius, die Meldung steht in den Antwortdaten des Payment Requests und als Fehler der Zahlung. Das Format ist das von Sylius.
Grenze: Identifikationsnummer in den Nordics
Headless-Shops können die Identifikationsnummer nicht übergeben. Das Feld gehört zum Storefront-Checkout. Eine Bestellung nach Norwegen, Schweden, Dänemark oder Finnland, die über die API ohne Nummer aufgegeben wird, geht nicht an Riverty: Die Zahlung schlägt mit der klaren Meldung fehl, dass eine Identifikationsnummer fehlt (sichtbar am Payment Request und als Fehler der Zahlung). Ein Headless-Shop muss die Nummer selbst erfragen und kann sie diesem Plugin noch nicht übergeben.
Bestellungen in die Nordics brauchen außerdem die Währung, die Riverty dort erwartet (NOK, SEK, DKK, in Finnland EUR). Für Länder außerhalb der Nordics gibt es diese Grenze nicht.
Admin-Aktionen
Capture, Void und Refund sowie die Buttons der Einstellungen sind Admin-Aktionen mit CSRF-Token und kein Teil einer API. Wie du sie nutzt, steht unter Bestellverwaltung.