Auftraggeber

Payone GmbH mit Hauptsitz in Frankfurt am Main ist ein Gemeinschaftsunternehmen des französischen Zahlungsverkehr- und Transaktionsdienstleisters Worldline und der DSV-Gruppe (Deutscher Sparkassenverlag). Das Unternehmen ist ein Anbieter von bargeldlosen Zahlungslösungen bzw. ein Payment-Service-Provider. Das Unternehmen wickelt für seine über 260.000 Kunden in der DACH-Region mehr als 3,8 Milliarden Transaktionen pro Jahr ab. Zu den Kunden zählen unter anderem die Deutsche Bahn, Rossmann, Puma, home24 und Sansibar.

Projekt-Zusammenfassung

Das Projekt besteht darin, eine ganzheitliche Zahlungsplattform für Tankstellen und eine zugehörige Client-App für Kartenzahlungsterminals zu entwickeln. Die Plattform übernimmt die Kommunikation zwischen den angeschlossenen Kassensystemen, Kartenzahlungsterminals, dem Security-Gate und den Autorisierungssystemen der verschiedenen Kartenanbieter. Die gesamte Kommunikation erfolgt über abgesicherte Kanäle. Die Client-App führt Transaktionen über die zentrale Zahlungsplattform durch und interagiert mit angeschlossenen Kassensystemen.

Herausforderungen

  • Implementierung einer sicheren Kommunikation zwischen den verschiedenen Komponenten der Zahlungsplattform und der Client-App
  • Aufbau eines verteilten Systems, das skalierbar und robust ist
  • Integration von Kassensystemen, Kartenzahlungsterminals, Security-Gate und Autorisierungssystemen verschiedener Kartenanbieter.
  • Integration der Client-App mit den angebundenen Kassensystemen über OPI (Open Payment Initiative)

Lösungen / Vorgehensweise

  • Entwicklung eines zentralen Cloud-Services als verteiltes System basierend auf einem Kubernetes-Cluster
  • Verwendung von ActiveMQ/RabbitMQ für die Nachrichtenvermittlung zwischen den Komponenten
  • Integration von Kassensystemen, Kartenzahlungsterminals, Security-Gate und Autorisierungssystemen verschiedener Kartenanbieter.
  • Implementierung der Zahlungsplattform mit Spring Boot und der Client-App in C und C++ mit Verwendung von Boost-Bibliotheken
  • Sicherung der Kommunikationsschicht zwischen der Client-App und der Zahlungsplattform mit mutual TLS (Transport Layer Security)
  • Anbindung der Client-App an Kassensysteme (ECR) über OPI zur Interaktion mit den Zahlungsterminals
  • Aufbau einer CI/CD-Pipeline mit Teamcity für kontinuierliche Integration, Python, Cmake/Makelist.txt, CTest, Cgreen und Boost-Test für die Client-App und Sonarcube für statische Codeanalyse, Dependency-Check für die Überprüfung von Abhängigkeiten und Octopus für die Bereitstellung der Zahlungsplattform

Ergebnisse

  • Sichere Kommunikation zwischen den angeschlossenen Komponenten der Zahlungsplattform und der Client-App
  • Skalierbares und robustes, verteiltes System
  • Erfolgreiche Integration von Kassensystemen, Kartenzahlungsterminals, Security-Gate, Autorisierungssystemen verschiedener Kartenanbieter und der Client-App mit den angebundenen Kassensystemen

Technologiestack

  • Kubernetes
  • ActiveMQ/RabbitMQ
  • Spring Boot
  • Google Protobuf
  • Mutual TLS
  • OPI (Open Payment Initiative)
  • C/C++
  • Python
  • REST
  • Liquibase
  • ouncy Castle Crypto API
  • OpenAPI