Markus Michalski FAQ

Riverty Payments: Installation und Betrieb

Riverty Payments für Sylius - Installation per Composer (Packeton), Routen, Setup-Befehl, Update, Cronjob für den Abgleich und Deinstallation in der richtigen Reihenfolge

English Version

Zurück zur Übersicht

Riverty Payments: Installation und Betrieb

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

Voraussetzungen prüfen

Die vollständige Liste steht auf der Übersicht. Zwei Punkte entscheiden oft über Erfolg oder Misserfolg:

APP_SECRET niemals ändern, nachdem Riverty-API-Keys gespeichert sind. Die Keys werden verschlüsselt abgelegt, der Schlüssel wird aus APP_SECRET (%kernel.secret%) abgeleitet. Ändert sich der Wert, lassen sich die gespeicherten Keys nicht mehr entschlüsseln und jeder Riverty-Aufruf scheitert, bis du alle Keys neu eingibst. Sichere APP_SECRET zusammen mit deinen Datenbank-Backups. Wenn du ihn bewusst rotierst, speichere danach alle Riverty-API-Keys erneut.

Payment-Request-Transport synchron lassen. Die Autorisierung bei Riverty ist ein Payment-Request-Command. Läuft er über eine Queue, wird er erst ausgeführt, wenn ein Worker die Queue abarbeitet, und bis dahin bleibt die Zahlung Neu und der Kunde wird nicht zu Riverty geschickt. Das Sylius-Standardverhalten ist SYLIUS_MESSENGER_TRANSPORT_PAYMENT_REQUEST_DSN=sync://. Manche Skeleton-.env-Dateien setzen hier eine Doctrine-Queue, prüfe deine.

Installation

Das Plugin liegt in einem privaten Repository und wird über Packeton (https://packeton.markus-michalski.net) bereitgestellt. Die Zugangsdaten erhältst du nach dem Lizenzkauf.

Private Repositories werden über Packeton verwaltet. Trage das Repository in deiner composer.json ein und hinterlege die Zugangsdaten wie bei jedem privaten Composer-Repository.

  1. Repository eintragen und Plugin installieren:

    { "repositories": [{ "type": "composer", "url": "https://packeton.markus-michalski.net" }] }
    
    composer require mmd/sylius-riverty-payments
    
  2. Bundle registrieren in config/bundles.php:

    Mmd\SyliusRivertyPaymentsPlugin\MmdSyliusRivertyPaymentsPlugin::class => ['all' => true],
    
  3. Admin-Routen importieren, zum Beispiel in config/routes/mmd_sylius_riverty_payments.yaml:

    mmd_sylius_riverty_payments_admin:
        resource: "@MmdSyliusRivertyPaymentsPlugin/config/routes/admin.yaml"
    

    Shop-Routen gibt es nicht, das Plugin bringt keine eigenen Storefront- oder API-Endpunkte mit (siehe Shop API).

  4. Setup-Befehl ausführen. Er legt die Tabellen an. Nutze nicht doctrine:migrations:migrate, siehe Migrationen:

    bin/console mmd:riverty:setup
    
  5. Den Abgleich offener Zahlungen einplanen, zum Beispiel alle 10 Minuten:

    */10 * * * * cd /pfad/zum/shop && bin/console mmd:riverty:reconcile
    
  6. Weiter mit der Konfiguration: API-Keys eintragen und Zahlarten anlegen.

Migrationen

mmd:riverty:setup führt nur die noch offenen Migrationen dieses Plugins aus, nichts von der App oder anderen Plugins:

Die Migrationen sind für MySQL 8 und MariaDB geschrieben. Auf einer anderen Plattform brechen sie mit einer Fehlermeldung ab.

Update

  1. Plugin aktualisieren:

    composer update mmd/sylius-riverty-payments
    
  2. Setup-Befehl erneut ausführen (idempotent, legt neue Tabellen und Spalten an):

    bin/console mmd:riverty:setup
    
  3. Cache leeren:

    bin/console cache:clear
    

Cronjob

Befehl Empfohlenes Intervall Beschreibung
bin/console mmd:riverty:reconcile alle 10 Minuten Gleicht offene Zahlungen mit Riverty ab, prüft ablaufende Reservierungen, versendet die tägliche Digest-Mail und räumt alte API-Log-Einträge auf

Alle Optionen stehen auf der Seite Abgleich und Ablauf.

Deinstallation

Die Reihenfolge ist wichtig, weil die Migrationen zurückgerollt werden müssen, solange das Bundle noch registriert ist.

  1. Riverty-Zahlarten im Admin deaktivieren, damit kein Kunde sie mehr wählt.

  2. Migrationen zurückrollen, pro Version einzeln, neueste zuerst:

    bin/console doctrine:migrations:execute --down 'Mmd\SyliusRivertyPaymentsPlugin\Migrations\Version20261106090000'
    bin/console doctrine:migrations:execute --down 'Mmd\SyliusRivertyPaymentsPlugin\Migrations\Version20261105090000'
    bin/console doctrine:migrations:execute --down 'Mmd\SyliusRivertyPaymentsPlugin\Migrations\Version20261104090000'
    bin/console doctrine:migrations:execute --down 'Mmd\SyliusRivertyPaymentsPlugin\Migrations\Version20261103090000'
    bin/console doctrine:migrations:execute --down 'Mmd\SyliusRivertyPaymentsPlugin\Migrations\Version20261102090000'
    bin/console doctrine:migrations:execute --down 'Mmd\SyliusRivertyPaymentsPlugin\Migrations\Version20261101100000'
    bin/console doctrine:migrations:execute --down 'Mmd\SyliusRivertyPaymentsPlugin\Migrations\Version20261101090000'
    
  3. Routen-Import und Bundle-Eintrag entfernen.

  4. Plugin entfernen:

    composer remove mmd/sylius-riverty-payments
    

Das Zurückrollen löscht die Riverty-Transaktionen und den API-Log. Sichere die Datenbank vorher, wenn du sie noch brauchst.