Markus Michalski FAQ

Riverty Payments: Abgleich und Ablauf

Riverty Payments für Sylius - Abgleich offener Zahlungen per Konsolenbefehl, Überwachung der 30-Tage-Reservierung, Warnfenster, tägliche Digest-Mail und Cronjob-Optionen

English Version

Zurück zur Übersicht

Riverty Payments: Abgleich und Ablauf

Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.

Offene Zahlungen abgleichen

Riverty sendet keinen Webhook. Ein Kunde, der bei Riverty bezahlt und dann den Browser schließt, kommt nie in den Shop zurück, die Sylius-Zahlung bliebe offen, obwohl Riverty eine angenommene Bestellung hält. Der Befehl mmd:riverty:reconcile findet diese Zahlungen und fragt Riverty danach. Richte ihn als Cronjob ein:

*/10 * * * * cd /pfad/zum/shop && bin/console mmd:riverty:reconcile

Was der Befehl tut

Für jede Riverty-Transaktion, die noch aussteht und deren Zahlung noch offen ist (neu oder in Bearbeitung):

Antwort von Riverty Folge
Angenommen Die Zahlung wird autorisiert, genau als wäre der Kunde zurückgekehrt
Abgelehnt Die Transaktion wird abgelehnt und die Zahlung schlägt fehl
Noch offen Nichts passiert, der Kunde kann noch im Hosted Checkout sein. Ist das Angebot abgelaufen, das Riverty genannt hat, läuft die Transaktion ab und die Zahlung schlägt fehl. Ein fehlendes oder unlesbares Ablaufdatum lässt nie etwas ablaufen
Riverty nicht erreichbar oder unerwartete Antwort Nichts ändert sich, weil Riverty eine gültige Autorisierung halten kann. Der nächste Lauf fragt erneut

Was er nicht tut: Er fasst keine Transaktion an, die schon autorisiert, erfasst, storniert oder erstattet ist, er erfasst oder erstattet nichts und er storniert keine Bestellungen.

Optionen

Option Standard Beschreibung
--older-than=15 15 Minuten, die eine Transaktion unberührt sein muss, damit ein Kunde, der noch zahlt, nicht gestört wird
--limit=100 100 Höchstens so viele Transaktionen pro Lauf, die ältesten zuerst
--dry-run aus Fragt Riverty und gibt aus, was passieren würde, ändert und sendet nichts
--no-digest aus Versendet die tägliche Digest-Mail nicht
--api-log-days=7 30 Aufbewahrung des API-Logs für diesen Lauf, siehe Konfiguration

Die Ausgabe ist eine Tabelle mit Riverty-Referenz, Bestellnummer, Ergebnis und Zahlungsstatus sowie eine Zusammenfassung. Der Exit-Code ist nur dann 1, wenn jede versuchte Transaktion unerwartet fehlschlug.

Ablaufende Autorisierungen

Riverty storniert eine Autorisierung 30 Tage nach ihrer Erteilung von selbst und sagt dem Händler nichts. Eine versendete Bestellung, die nie erfasst wurde, bezahlt Riverty dann nicht, und nach Ende der Reservierung ist ein Capture nicht mehr möglich. Das Plugin überwacht das.

graph TD
    A["Autorisierung erteilt"] --> B["Plugin merkt sich Erstellzeit plus 30 Tage"]
    B --> C{"Warnfenster erreicht?"}
    C -->|Nein| D["Nichts"]
    C -->|Ja| E["Hinweis auf der Bestellseite und Eintrag in der Digest-Mail"]
    E --> F{"Riverty meldet Ende?"}
    F -->|Nein| G["Reservierung bleibt bestehen"]
    F -->|Ja| H["Transaktion Authorization expired, Zahlung storniert"]

Die tägliche Digest-Mail

Die Mail geht an die Kontakt-E-Mail des Channels (trage sie in den Channel-Einstellungen ein, die Einstellungsseite warnt, wenn sie fehlt), in der Standardsprache des Channels, höchstens einmal am Tag und nur, wenn es etwas zu melden gibt. Absender ist die Absenderadresse des Sylius-Mailers.

Reihenfolge der Meldungen:

  1. versendete Bestellungen, die nicht erfasst wurden
  2. Reservierungen, die Riverty storniert hat (werden einmal gemeldet)
  3. Reservierungen, die innerhalb des Warnfensters enden
  4. unbekannte Antworten von Riverty

Eine Bestellung steht nur einmal da, unter der dringlichsten Überschrift. Die Mail verlinkt die Bestellungen nur, wenn der Channel einen Hostnamen hat, und die Links nutzen https.

mmd:riverty:reconcile --no-digest überspringt die Mail, --dry-run fragt Riverty, ändert und sendet aber nichts.