Riverty Payments: Erweiterbarkeit
Riverty Payments für Sylius - austauschbare Interfaces als Service-Aliase, Service-Tags des Payment-Request-Systems, Events des Plugins und der Hinweis, dass es keine formale BC-Zusage gibt
Riverty Payments: Erweiterbarkeit
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Das Plugin gibt keine formale Abwärtskompatibilitäts-Zusage ab. Form-Types, Twig-Erweiterungen und Event-Listener sind im Code ausdrücklich als @internal markiert: Konstruktoren und Interna können sich in einem Minor-Release ändern. Stütze dich für eigene Erweiterungen auf die Punkte dieser Seite.
Prüfe nach jedem Update, ob deine Erweiterungspunkte noch passen, weil es keine Kompatibilitäts-Zusage gibt.
Austauschbare Interfaces
Diese Interfaces sind als Service-Aliase eingerichtet. Du ersetzt die Implementierung, indem du den Alias in der services.yaml deiner Anwendung auf deinen Service zeigen lässt.
| Interface | Aufgabe |
|---|---|
RivertyClientInterface |
Spricht mit der Riverty-API |
RivertyCredentialsProviderInterface |
Liefert die API-Keys pro Land |
RivertyAvailabilityInterface |
Fragt Riverty, welche Zahlarten für einen Warenkorb gelten |
ApiCallRecorderInterface |
Schreibt den API-Log |
CredentialCipherInterface |
Ver- und entschlüsselt API-Keys und Identifikationsnummern |
RivertySettingsRepositoryInterface |
Zugriff auf die Channel-Einstellungen |
CustomerOrderHistoryInterface |
Liest die frühere Bestellhistorie des Kunden für die Option Bestellhistorie |
RivertyTransactionRepositoryInterface |
Zugriff auf die Riverty-Transaktionen |
services:
App\Riverty\MyClient: ~
Mmd\SyliusRivertyPaymentsPlugin\Api\RivertyClientInterface:
alias: App\Riverty\MyClient
Service-Tags
Das Plugin hängt sich über Standard-Tags in Sylius ein. Du kannst die Services dekorieren oder ersetzen:
| Tag | Wert | Zweck |
|---|---|---|
sylius.gateway_configuration_type |
type: riverty |
Gateway-Formular mit dem Feld Riverty-Zahlungsart |
sylius.payment_request.command_provider |
gateway_factory: riverty |
Wählt den Command für Autorisierung und Status |
sylius.payment_request.provider.http_response |
gateway_factory: riverty |
Leitet im Storefront zu Riverty oder zurück zur Bestellung |
form.type_extension |
Zahlungsschritt | Feld für die Identifikationsnummer |
messenger.message_handler |
Bus sylius.payment_request.command_bus |
Handler für Autorisierung und Status |
Der Gateway-Factory-Name ist riverty. Die Auflösung der Zahlarten dekoriert den Service sylius.resolver.payment_methods, das Plugin ist also selbst ein Beispiel für einen Dekorator. Weitere Dekoratoren hängst du genauso davor.
Events
Das Plugin hört auf diese Ereignisse. Eigene Listener auf denselben Ereignissen mit höherer oder niedrigerer Priorität sind möglich.
| Ereignis | Zweck im Plugin |
|---|---|
workflow.sylius_order_shipping.completed.ship |
Merkt eine Bestellung für den Capture beim Versand vor, wenn ihre letzte Lieferung versendet wurde |
workflow.sylius_payment.guard.complete |
Sperrt den Sylius-Übergang Complete für Riverty-Zahlungen |
workflow.sylius_payment.guard.refund |
Sperrt den Sylius-Übergang Refund für Riverty-Zahlungen |
kernel.terminate und console.terminate |
Führen den vorgemerkten Capture nach der Antwort aus |
Messenger WorkerMessageHandledEvent und WorkerMessageFailedEvent |
Führen den vorgemerkten Capture in einem Worker nach jeder Nachricht aus |
sylius.menu.admin.main |
Trägt den Menüpunkt unter MMKreativ Plugins ein |
Capture beim Versand und das Sperren der Sylius-Buttons setzen den State-Machine-Adapter
symfony_workflowvoraus, den Sylius-Standard. Mitwinzou_state_machineentfallen beide Funktionen.