Inhaltsverzeichnis
-
Einführung
-
Was ist Stancer und warum sollte man es integrieren?
-
Ziele des Moduls
-
Grundlegendes zur Dolibarr-Modularchitektur
-
Einrichten der Entwicklungsumgebung
-
Authentifizierung und Stancer-API-Zugriff
-
Erstellen des Stancer-Moduls
-
Dateistruktur
-
Wichtige Konfigurationsdateien
-
Zahlungs-Hook-Integration
-
-
Abwicklung von Transaktionen: Zahlungen und Webhooks
-
Testen und Debuggen der Stancer-Integration
-
Überlegungen zur Benutzeroberfläche und UX
-
Integrationsherausforderungen in der Praxis und gewonnene Erkenntnisse
-
Sicherheit und Compliance in Zahlungsmodulen
-
Tipps für Bereitstellung und Wartung
-
Community-Beitrag und zukünftige Verbesserungen
-
Fazit
1. Einleitung
Dolibarr ERP/CRM ist eine leistungsstarke Open-Source-Plattform, die Unternehmen zur Verwaltung von Vertrieb, Buchhaltung, Projekten und mehr nutzen. Da Online-Transaktionen zur Norm werden, ist die Integration zuverlässiger und moderner Zahlungsgateways unerlässlich. Ein solches Gateway ist Stancer, ein Zahlungsdienst, der auf Einfachheit, Transparenz und entwicklerfreundliche APIs ausgelegt ist. Dieser Artikel beschreibt detailliert die Entwicklung und Integration eines Stancer-Zahlungsmoduls in Dolibarr, einschließlich Designentscheidungen, technischer Hürden und Best Practices.
2. Was ist Stancer und warum sollte man es integrieren?
Stancer ist ein französischer Zahlungsabwickler mit wettbewerbsfähigen Transaktionsgebühren, einer unkomplizierten API und Services wie Kartenzahlungen, SEPA-Lastschriften und wiederkehrenden Abrechnungen. Wichtige Gründe für Stancer:
-
Transparente Preisgestaltung
-
Entwicklerorientierte RESTful API
-
Einhaltung europäischer Vorschriften (PSD2, 3DSecure)
-
Unterstützung sowohl für einmalige als auch für wiederkehrende Zahlungen
Durch die Integration von Stancer in Dolibarr können Benutzer Zahlungen direkt aus ihrem ERP-System verwalten, die Kundenabrechnung automatisieren und die manuelle Verarbeitung reduzieren.
3. Ziele des Moduls
Die Hauptziele beim Entwurf des Stancer-Moduls für Dolibarr waren:
-
Nahtlose Integration in die Rechnungs- und Zahlungsabläufe von Dolibarr
-
Transaktionsverarbeitung und Statusaktualisierungen in Echtzeit
-
Unterstützung für einmalige und wiederkehrende Zahlungen
-
Sicherer Umgang mit sensiblen Zahlungsdaten
-
Einfache Installation und Konfiguration für nicht-technische Benutzer
4. Die Dolibarr-Modularchitektur verstehen
Bevor Sie ein Modul entwickeln, ist es wichtig, die modulare Struktur von Dolibarr zu verstehen. Wichtige Elemente sind:
-
Moduldeskriptordateien (
modStancer.class.php) -
Haken: Wird zur Interaktion mit Dolibarr-Ereignissen wie Rechnungsvalidierung, Erstellung durch Dritte oder Zahlungsübermittlung verwendet.
-
Auslöser: Ereignis-Listener (z. B.
trigger.inc.php), die auf Änderungen auf Datenbankebene reagieren. -
Menüs und Berechtigungen: Im Moduldeskriptor definiert.
Dolibarr ermöglicht es Modulen, vorhandene Entitäten (wie Rechnungen oder Drittanbieter) zu erweitern, Registerkarten hinzuzufügen oder Kernverhaltensweisen zu überschreiben.
5. Einrichten der Entwicklungsumgebung
Zum Erstellen des Stancer-Moduls haben wir Folgendes verwendet:
-
Dolibarr v15+ installiert in einer lokalen Entwicklungsumgebung (Apache + MySQL)
-
Composer für Abhängigkeitsmanagement (für HTTP-Clients)
-
Git zur Versionskontrolle
-
Ein Test-Stancer-Konto für den Zugriff auf das Entwickler-Dashboard und die API-Schlüssel
Gewährleisten MAIN_MODULE_STANCER wird während der Entwicklung in der Conf-Datei von Dolibarr deklariert.
6. Authentifizierung und Stancer-API-Zugriff
Stancer verwendet eine grundlegende HTTP-Authentifizierung:
Authorization: Basic base64(YourPrivateKey:)
Wir haben Guzzle (einen PHP-HTTP-Client) für authentifizierte Anfragen verwendet. Alle API-Aufrufe – ob zum Erstellen einer Zahlung, Abrufen einer Transaktion oder Einrichten einer wiederkehrenden Belastung – erfordern die Verwendung eines sicheren privaten Schlüssels von Stancer.
So speichern und verwenden Sie diesen Schlüssel sicher:
-
Verwenden Sie Dolibarr's
confObjekt ($conf->global->STANCER_API_KEY) -
Maskieren Sie den Wert in Konfigurationsschnittstellen
-
Validieren Sie es während der Moduleinrichtung
7. Erstellen des Stancer-Moduls
Dateistruktur
/custom/stancer/
├── class/
│ └── api_stancer.class.php
├── core/
│ └── modules/
│ └── modStancer.class.php
├── hook/
│ └── interface_99_modstancer_common.php
├── stancer.php
└── README.md
Wichtige Konfigurationsdateien
-
modStancer.class.php: Definiert Moduleigenschaften und Installationsverhalten -
api_stancer.class.php: Kernklasse zum Verwalten von API-Anfragen -
hook/interface_99_modstancer_common.php: Hakt sich in Dolibarr-Formen ein
Zahlungs-Hook-Integration
Die richtigen addMoreActionsButtons() Wir integrieren einen „Mit Stancer bezahlen“-Button direkt in die Rechnungsansicht. Ein Klick auf diesen Button leitet Sie zu einem sicheren Zahlungsformular weiter, das auf Dolibarr oder über ein eingebettetes Iframe gehostet wird.
8. Transaktionsabwicklung: Zahlungen und Webhooks
Zahlungen in Echtzeit
Wenn ein Benutzer eine Zahlung abschließt, führen wir sofort Folgendes durch:
-
Rufen Sie Stancer's an
/paymentEndpunkt -
Speichern Sie die Transaktions-ID in einem benutzerdefinierten Feld auf der Rechnung
-
Aktualisieren Sie die Zahlungsaufzeichnungen von Dolibarr über die API oder den Trigger
Webhook-Integration
Stancer unterstützt Rückrufe für Ereignisse wie:
-
Erfolg oder Misserfolg der Zahlung
-
Abonnementverlängerungen
Wir haben im Stancer-Dashboard einen Webhook registriert, der auf Folgendes verweist:
https://yourdomain.com/custom/stancer/webhook.php
Dieses Skript liest das eingehende JSON, validiert es und aktualisiert den Rechnungsstatus in Dolibarr.
9. Testen und Debuggen der Stancer-Integration
Abgedeckte Tests:
-
Erfolgreiche Zahlungen (Visa/Mastercard)
-
Zahlungsablehnungen (mit Stancer-Testkarten simulieren)
-
Abonnementverlängerungen und -kündigungen
-
Fehlerfälle (Netzwerkprobleme, fehlerhafte Nutzdaten)
Wir haben alle API-Antworten in einer sicheren Protokolldatei protokolliert und Dolibarrs dol_syslog() zur internen Nachverfolgung.
Zu den häufigsten Problemen gehörten:
-
Kodierungsfehler in POST-Nutzdaten
-
Webhook-IP-Whitelist
-
Nicht synchrone Aktualisierungen bei wiederkehrenden Zahlungen
10. Überlegungen zur Benutzeroberfläche und UX
Unser Modul bietet:
-
Eine Konfigurationsseite unter „Third-Party Setup“ zur Eingabe des API-Schlüssels
-
Zahlungsstatusanzeigen in der Rechnungsansicht
-
Fehlermeldungen, wenn eine Transaktion fehlschlägt
-
E-Mail-Benachrichtigungen zum Zahlungsstatus an Administrator und Kunde
Wir haben auf eine Neugestaltung der Kern-Benutzeroberfläche verzichtet und stattdessen, wo möglich, vorhandene Vorlagen erweitert.
11. Integrationsherausforderungen in der Praxis und gewonnene Erkenntnisse
1. Dolibarrs Versionskompatibilität
Änderungen an Kernobjekten zwischen Dolibarr-Versionen (z. B. Facture Klasse) führte zu anfänglichen Fehlern. Lösung: Abstrakte Logik in Serviceklassen und versionsübergreifendes Testen.
2. Sichere Token-Speicherung
Wir haben den API-Schlüssel zunächst im Klartext gespeichert. Mithilfe der integrierten Verschleierungsmethoden von Dolibarr wurde er dann in einen verschlüsselten Speicher verschoben.
3. Zeitpunkt der Zahlungsbestätigung
Die asynchrone Webhook-Bestätigung kollidierte manchmal mit manuellen Zahlungseingaben. Wir haben eine Verzögerungs- und Doppelprüflogik hinzugefügt.
12. Sicherheit und Compliance in Zahlungsmodulen
Sicherheit steht bei Zahlungsintegrationen an erster Stelle:
-
HTTPS ist für die gesamte Kommunikation obligatorisch
-
Der Webhook-Endpunkt muss HMAC-Signaturen überprüfen (falls verfügbar).
-
Sensible Daten wie Kartennummern werden nie gespeichert – nur Token oder Transaktions-IDs
-
Prüfprotokolle werden sicher gespeichert und regelmäßig überprüft
Wir haben außerdem die DSGVO-Konformität überprüft und die Benutzer während der Einrichtung über die Datenverarbeitung informiert.
13. Tipps für Bereitstellung und Wartung
-
Verwenden Sie eine Staging-Umgebung für Updates
-
Dokumentieren Sie alle benutzerdefinierten Hooks und Overrides
-
Planen Sie regelmäßige API-Schlüsselrotationen
-
Überwachen Sie Protokolle auf fehlgeschlagene Transaktionen oder Webhook-Versuche
-
Sichern Sie die Konfiguration vor dem Upgrade von Dolibarr
14. Community-Beitrag und zukünftige Verbesserungen
Wir planen:
-
Native Unterstützung für SEPA-Lastschriften hinzufügen
-
Veröffentlichen Sie das Modul auf Dolistore mit Dokumentation in Englisch und Französisch
-
Implementieren Sie die Unterstützung mehrerer Währungen
-
Kompatibilität mit der wiederkehrenden Rechnungsfunktion von Dolibarr hinzufügen
Wir ermutigen zu Beiträgen über GitHub und pflegen eine offene Roadmap.
15. Fazit
Die Entwicklung des Stancer-Moduls für Dolibarr erwies sich als lohnende Herausforderung. Sie erforderte fundierte Kenntnisse der internen Prozesse von Dolibarr und moderner API-Entwicklungsprinzipien. Dank sorgfältiger Planung, sicherer Programmierung und Community-Feedback haben wir eine flexible und produktionsreife Zahlungslösung geschaffen.
Für alle Dolibarr-Nutzer, die ihren Zahlungsablauf modernisieren möchten, ist diese Integration eine skalierbare und benutzerfreundliche Option. Mit der Weiterentwicklung der Zahlungstechnologie werden wir das Modul kontinuierlich verbessern und die Community unterstützen.
