Contao · MIT-Lizenz

Zahlung für Contao.

Überweisung mit Bankdaten und GiroCode, dazu Stripe Checkout. Die gemeinsame Zahlungsschicht für Shop und Seminare.

Version 1.0.0 vom 30.09.2026 · Contao 5.7.12 · PHP 8.3+

Installation

Aktualisiere Contao vor der Installation auf mindestens 5.7.12. Im Contao Manager zuerst alle Pakete aktualisieren und erst danach ZIPs hochladen; ältere 5.7-Versionen können beim aktualisierten Flysystem-Bundle mit AdapterDefinitionFactory not found abbrechen.

Im Contao Manager nach nordwerk/contao-payment-bundle suchen und das Paket installieren. Alternativ das Manager-ZIP aus den GitHub-Releases herunterladen und im Manager hochladen; anschließend die Datenbank aktualisieren.

Über Composer:

composer require nordwerk/contao-payment-bundle
vendor/bin/contao-console contao:migrate

Installationshinweise und Voraussetzungen stehen auch im README.

Was es kann

Vorkasse mit Bankdaten und lokal erzeugtem GiroCode sowie gehosteter Stripe Checkout teilen sich eine Zahlungsschicht. Kartendaten bleiben bei Stripe. Zahlungen und ihr Ereignisprotokoll sind im Contao-Backend sichtbar; Vorkasse wird dort bestätigt, Erstattungen werden erfasst beziehungsweise über Stripe ausgeführt.

Unter „Inhalte → Zahlung einrichten“ werden Anbieter und Testmodus eingerichtet. Ein öffentlich erreichbarer HTTPS-Webhook bestätigt Stripe-Zahlungen; die Rückkehrseite allein bestätigt keine Zahlung. Nutzende Bundles verbinden ihre Bestellungen über PayableResolverInterface, Contao-Cron gleicht offene Zahlungen ab. PHP benötigt GD und mbstring für den GiroCode.

Erste Schritte im Backend

Installiere die Zahlungsschicht gemeinsam mit einem nutzenden Bundle wie dem Mini-Shop. Eine eigene Anbindung implementiert PayableResolverInterface; das Payment-Bundle allein stellt keinen Shop bereit. Für GiroCode werden die PHP-Erweiterungen GD und mbstring benötigt.

  1. Öffne Inhalte → Zahlung einrichten. Vorkasse ist voreingestellt; hinterlege die Bankdaten und wähle die gewünschten Anbieter.
  2. Für Stripe wähle zuerst den Testmodus, trage den Test-Schlüssel ein und speichere mit ausgeschaltetem Stripe. Führe Webhook bei Stripe anlegen aus oder trage ein vorhandenes Webhook-Secret ein. Schalte danach Stripe ein und speichere erneut.
  3. Vor dem Wechsel auf Live schließe ausstehende Testzahlungen und Zustellungen ab. Schalte Stripe aus, speichere Live-Modus und Live-Schlüssel, lege den Live-Webhook an und schalte Stripe wieder ein. Die Website braucht HTTPS und einen öffentlich erreichbaren Webhook unter /_nw/payment/webhook/stripe.
  4. Sichere Symfony APP_SECRET: Daraus werden die Schlüssel für die verschlüsselte Speicherung abgeleitet. Ein Verlust oder Wechsel macht gespeicherte Schlüssel unlesbar. Leere Schlüsselfelder behalten vorhandene Werte; beim Moduswechsel beide Schlüssel ersetzen.
  5. Prüfe unter Inhalte → Zahlungen Zahlvorgänge und Ereignisprotokoll. Bestätige eingegangene Vorkasse dort manuell und betreibe Contao-Cron regelmäßig, damit offene Zahlungen beim Anbieter abgeglichen werden.

Die Rückkehrseite bestätigt keine Zahlung; maßgeblich sind der geprüfte Webhook und der Anbieterabgleich. Vorkasse-Erstattungen dokumentieren eine bereits extern ausgeführte Überweisung. Stripe-Erstattungen gehen über die API; eine volle Erstattung storniert nicht automatisch eine Bestellung oder Lieferung.

Twig-Integration

Die Zahlungsrückkehr wird über @NordwerkPayment/return.html.twig ausgegeben und lässt sich im Projekt anpassen. Eigene Shops oder Buchungsabläufe stellen ihre Oberfläche selbst bereit und verbinden sie über den Resolver mit der Zahlungsschicht.

  • Verfügbar

    Widerrufsbutton

    Elektronische Widerrufsfunktion nach § 356a BGB, zweistufig, ohne Login und JavaScript. Läuft auch ohne unsere Pakete.

    Zum Paket

Häufige Fragen

Welche Contao-Version und PHP-Erweiterungen brauche ich?

Contao ab 5.7.12 innerhalb der 5.7-Reihe und PHP ab 8.3. Für den lokal erzeugten GiroCode werden GD und mbstring benötigt. Contao 6 ist in den Voraussetzungen dieses Pakets nicht aufgeführt.

Ist das Paket ein eigenständiger Shop?

Nein. Es ist die gemeinsame Zahlungsschicht für nutzende Bundles. Ein Shop oder Buchungsablauf implementiert PayableResolverInterface und verbindet darüber Bestellungen mit Vorkasse oder Stripe Checkout.

Wer verarbeitet die Kartendaten?

Stripe verarbeitet Kartendaten im gehosteten Checkout. Im Contao-Backend werden Anbieter, Modus und Schlüssel eingerichtet. Für den Livebetrieb brauchst du HTTPS und einen öffentlich erreichbaren Webhook; Symfony APP_SECRET muss gesichert werden.

Bestätigt die Rückkehrseite die Zahlung?

Nein. Sie zeigt den Prüfstatus und lädt ohne JavaScript regelmäßig neu. Die Bestätigung kommt über den geprüften Stripe-Webhook beziehungsweise den Anbieterabgleich. Contao-Cron muss regelmäßig laufen, damit offene Zahlungen abgeglichen werden.

Wie funktionieren Vorkasse und Erstattungen?

Vorkasse zeigt Bankdaten und GiroCode und wird im Backend manuell bestätigt. Bei Vorkasse dokumentiert Erstatten eine bereits extern überwiesene Rückzahlung; es führt keine Banküberweisung aus. Stripe-Erstattungen gehen über die API. Eine volle Erstattung storniert nicht automatisch die Lieferung.

Kann ich Darstellung und Code anpassen?

Ja. Das Paket steht unter der MIT-Lizenz. Die Zahlungsrückkehr lässt sich über @NordwerkPayment/return.html.twig anpassen; nutzende Bundles stellen ihre eigene Oberfläche bereit. Prüfe Beschriftungen, Kontraste und Tastaturbedienung im tatsächlichen Theme.