Buchungssoftware

Sicherheitsprüfungen

In der Datei run_channelmanager_result.php sind grundlegende Sicherheitsprüfungen implementiert. Es wird ein Portal-Token überprüft, um sicherzustellen, dass nur autorisierte Benutzer auf die API zugreifen können. Zudem gibt es Einschränkungen bezüglich der API-Nutzung, wie etwa die maximale Anzahl an Zugriffen pro Stunde und Minute. Es sind keine spezifischen IP-Filter oder andere Sicherheitsmaßnahmen dokumentiert.

API-Calls Dokumentation

Fetch Stations

Endpoint: GET /run_channelmanager_result.php?call=fetchstations&portal={portal}
Beschreibung: Gibt eine Liste von verfügbaren Stationen zurück.
Parameter:
- Name: portal
Datentyp: Integer
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Kundennummer des Portals
Beispiel: 71

Relations

Endpoint: GET /run_channelmanager_result.php?call=relations&portal={portal}&station_id={station_id}&date={date}&zielstation_id={zielstation_id}&hidePrice={hidePrice}&hideRueckfahrt={hideRueckfahrt}&lhf_id={lhf_id}&linie_id={linie_id}
Beschreibung: Liefert die Fahrplandaten und Verbindungen zwischen zwei Stationen zu einem bestimmten Datum.
Parameter:
- Name: portal
Datentyp: Integer
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Kundennummer des Portals
Beispiel: 71
- Name: station_id
Datentyp: Integer
Pflicht: Ja
Mögliche Werte und deren Bedeutung: ID der Startstation
Beispiel: 1
- Name: date
Datentyp: String
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Datum im Format YYYY-MM-DD
Beispiel: 2023-10-01
- Name: zielstation_id
Datentyp: Integer
Pflicht: Ja
Mögliche Werte und deren Bedeutung: ID der Zielstation
Beispiel: 2
- Name: hidePrice
Datentyp: Boolean
Pflicht: Nein
Mögliche Werte und deren Bedeutung: true oder false
Beispiel: false
- Name: hideRueckfahrt
Datentyp: Boolean
Pflicht: Nein
Mögliche Werte und deren Bedeutung: true oder false
Beispiel: false
- Name: lhf_id
Datentyp: Integer
Pflicht: Nein
Mögliche Werte und deren Bedeutung: ID des Linien-Hafen-Eintrags
Beispiel: 3
- Name: linie_id
Datentyp: Integer
Pflicht: Nein
Mögliche Werte und deren Bedeutung: ID der Linie
Beispiel: 5

Availability

Endpoint: GET /run_channelmanager_result.php?call=availability&portal={portal}&product={product}&start={start}&stop={stop}
Beschreibung: Überprüft die Verfügbarkeit für ein Produkt über einen bestimmten Zeitraum.
Parameter:
- Name: portal
Datentyp: Integer
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Kundennummer des Portals
Beispiel: 71
- Name: product
Datentyp: String
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Produkt-ID
Beispiel: 12345
- Name: start
Datentyp: String
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Startdatum im Format YYYY-MM-DD HH:MM:SS
Beispiel: 2023-10-01 10:00:00
- Name: stop
Datentyp: String
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Enddatum im Format YYYY-MM-DD HH:MM:SS
Beispiel: 2023-10-01 12:00:00

Cancel

Endpoint: GET /run_channelmanager_result.php?call=cancel&portal={portal}&booking_reference={booking_reference}
Beschreibung: Storniert eine bestehende Reservierung basierend auf der Buchungsreferenz.
Parameter:
- Name: portal
Datentyp: Integer
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Kundennummer des Portals
Beispiel: 71
- Name: booking_reference
Datentyp: Integer
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Referenznummer der Buchung
Beispiel: 123456

Booking

Endpoint: POST /run_channelmanager_result.php?call=booking
Beschreibung: Erstellt eine neue Buchung und gibt die Buchungsdetails zurück.
Parameter:
- Name: product
Datentyp: String
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Produkt-ID
Beispiel: 12345
- Name: customer
Datentyp: String
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Name des Kunden
Beispiel: Max Mustermann
- Name: customer_first_name
Datentyp: String
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Vorname des Kunden
Beispiel: Max
- Name: email
Datentyp: String
Pflicht: Ja
Mögliche Werte und deren Bedeutung: E-Mail-Adresse des Kunden
Beispiel: max@mustermann.de
- Name: phone
Datentyp: String
Pflicht: Nein
Mögliche Werte und deren Bedeutung: Telefonnummer des Kunden
Beispiel: 0123456789
- Name: date
Datentyp: String
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Datum der Buchung im Format YYYY-MM-DD
Beispiel: 2023-10-01
- Name: ticket
Datentyp: Array
Pflicht: Ja
Mögliche Werte und deren Bedeutung: Liste der Tickets mit Typ und Anzahl
Beispiel: [{"id":1,"type":1,"quantity":2}]

Default Response

Endpoint: GET /run_channelmanager_result.php
Beschreibung: Gibt eine Standardantwort zurück, wenn kein spezifischer API-Call erkannt wird.
Parameter: Keine spezifischen Parameter erforderlich.

Zusammenfassung

Die oben genannten API-Calls ermöglichen es Benutzern, Informationen über Stationen abzurufen, Fahrplandaten zu erhalten, Verfügbarkeiten zu überprüfen, Buchungen zu stornieren und neue Buchungen zu erstellen. Jeder Call hat spezifische Parameter, die für die korrekte Ausführung erforderlich sind.

Sicherheitsprüfungen

In der Datei run_fahrplan_ausgabe.php wird ein Zugriffsschutz implementiert. Es wird geprüft, ob die IP-Adresse des Clients in einer zugelassenen Liste vorhanden ist. Wenn nicht, wird der Zugriff verweigert. Zudem gibt es eine Session-Überprüfung, die sicherstellt, dass nicht authentifizierte Benutzer nur eingeschränkten Zugriff haben. Weitere Sicherheitsmaßnahmen wie Token-Überprüfung oder IP-Filter sind nicht explizit erwähnt.

API-Calls

Eventkalender

Endpoint: run_fahrplan_ausgabe.php?aktion=eventcalendar

Beschreibung: Dieser Call generiert einen Kalender für Ereignisse, die mit bestimmten Linien- und Hafen-IDs verknüpft sind. Er ermöglicht das Abrufen von Fahrplänen für einen bestimmten Zeitraum und gibt diese in einem Kalenderformat zurück.

Parameter: - Name: linie_typ_id - Datentyp: String - Pflicht: Ja - Mögliche Werte: IDs der Linientypen, die angezeigt werden sollen. - Beispiel: 1,2,3

  • Name: datum
    • Datentyp: String
    • Pflicht: Nein
    • Mögliche Werte: Ein Datum im deutschen Format (z.B. dd.mm.yyyy).
    • Beispiel: 15.03.2023
  • Name: extra_months
    • Datentyp: Integer
    • Pflicht: Nein
    • Mögliche Werte: Anzahl der Monate, die zum Datum addiert oder subtrahiert werden sollen.
    • Beispiel: 2
  • Name: use_station_id
    • Datentyp: Integer
    • Pflicht: Nein
    • Mögliche Werte: ID der Station, die verwendet werden soll.
    • Beispiel: 5
  • Name: newwindow
    • Datentyp: Boolean
    • Pflicht: Nein
    • Mögliche Werte: true oder false
    • Beispiel: true
  • Name: godirect
    • Datentyp: Boolean
    • Pflicht: Nein
    • Mögliche Werte: true oder false
    • Beispiel: false
  • Name: target
    • Datentyp: String
    • Pflicht: Nein
    • Mögliche Werte: Ziel-URL für Links.
    • Beispiel: someTarget

Fahrtsuche

Endpoint: run_fahrplan_ausgabe.php?aktion=fahrtsuche

Beschreibung: Dieser Call sucht nach verfügbaren Fahrten basierend auf den eingegebenen Kriterien und gibt eine Liste der gefundenen Fahrten zurück.

Parameter: - Name: station_id - Datentyp: Integer - Pflicht: Ja - Mögliche Werte: ID der Abfahrtsstation. - Beispiel: 1

  • Name: start
    • Datentyp: String
    • Pflicht: Ja
    • Mögliche Werte: Startdatum im deutschen Format (z.B. dd.mm.yyyy).
    • Beispiel: 15.03.2023
  • Name: zeitraum
    • Datentyp: Integer
    • Pflicht: Ja
    • Mögliche Werte: Zeitraum in Tagen.
    • Beispiel: 5
  • Name: linientyp_id
    • Datentyp: Integer
    • Pflicht: Ja
    • Mögliche Werte: ID des Linientyps.
    • Beispiel: 2

Listenkategorien

Endpoint: run_fahrplan_ausgabe.php?aktion=listcategories

Beschreibung: Dieser Call gibt eine Liste von Kategorien zurück, die für die Linien und deren Fahrten relevant sind.

Parameter: - Name: start - Datentyp: Integer - Pflicht: Nein - Mögliche Werte: Ein Datum, ab dem die Kategorien angezeigt werden sollen. - Beispiel: 1672537600 (Unix-Timestamp)

  • Name: max
    • Datentyp: Integer
    • Pflicht: Nein
    • Mögliche Werte: Gibt an, ob die maximale Anzahl der angezeigten Kategorien begrenzt werden soll.
    • Beispiel: 10
  • Name: station_id
    • Datentyp: Integer
    • Pflicht: Ja
    • Mögliche Werte: ID der Station.
    • Beispiel: 3

Verkehrstage

Endpoint: run_fahrplan_ausgabe.php?aktion=verkehrstage

Beschreibung: Dieser Call ermittelt die Verkehrstage für die angegebene Linie und den Zeitraum.

Parameter: - Name: hafen_id - Datentyp: Integer - Pflicht: Ja - Mögliche Werte: ID des Hafens. - Beispiel: 4

  • Name: datum_start
    • Datentyp: String
    • Pflicht: Ja
    • Mögliche Werte: Startdatum im deutschen Format (z.B. dd.mm.yyyy).
    • Beispiel: 01.03.2023
  • Name: datum_stop
    • Datentyp: String
    • Pflicht: Ja
    • Mögliche Werte: Enddatum im deutschen Format (z.B. dd.mm.yyyy).
    • Beispiel: 31.03.2023
  • Name: linien_ids
    • Datentyp: String
    • Pflicht: Ja
    • Mögliche Werte: Komma-separierte Liste von Linien-IDs.
    • Beispiel: 1,2,3

Finden

Endpoint: run_fahrplan_ausgabe.php?aktion=finden

Beschreibung: Dieser Call sucht nach Fahrten basierend auf verschiedenen Kriterien und gibt die Ergebnisse zurück.

Parameter: - Name: linien_ids - Datentyp: String - Pflicht: Ja - Mögliche Werte: Komma-separierte Liste von Linien-IDs. - Beispiel: 1,2,3

  • Name: linie_typ_id
    • Datentyp: Integer
    • Pflicht: Nein
    • Mögliche Werte: ID des Linientyps.
    • Beispiel: 1
  • Name: start_datum
    • Datentyp: String
    • Pflicht: Ja
    • Mögliche Werte: Ein Datum im deutschen Format (z.B. dd.mm.yyyy).
    • Beispiel: 15.03.2023

Verkehrstage (Modus)

Endpoint: run_fahrplan_ausgabe.php?modus=verkehrstage

Beschreibung: Dieser Call gibt die Verkehrstage für die angegebene Linie zurück, basierend auf dem Modus.

Parameter: - Name: linien_ids - Datentyp: String - Pflicht: Ja - Mögliche Werte: Komma-separierte Liste von Linien-IDs. - Beispiel: 1,2,3

  • Name: start_datum
    • Datentyp: String
    • Pflicht: Ja
    • Mögliche Werte: Ein Datum im deutschen Format (z.B. dd.mm.yyyy).
    • Beispiel: 15.03.2023
  • Name: end_datum
    • Datentyp: String
    • Pflicht: Ja
    • Mögliche Werte: Ein Datum im deutschen Format (z.B. dd.mm.yyyy).
    • Beispiel: 15.04.2023

Fazit

Die Datei enthält mehrere API-Calls, die es ermöglichen, verschiedene Informationen über Fahrpläne und Linien abzufragen. Jeder Call hat spezifische Parameter, die für die korrekte Funktion notwendig sind. Die hier dokumentierten API-Calls sind für die Nutzung durch externe Systeme oder Anwendungen konzipiert.

Sicherheitsprüfungen

In der Datei xml_v1.php sind Sicherheitsprüfungen implementiert, die den Zugriff auf bestimmte API-Calls basierend auf Tokens und Benutzeranmeldungen steuern. Es wird überprüft, ob das übergebene Token gültig ist und ob der Benutzer angemeldet ist. Gültige Tokens sind erforderlich, um auf die meisten API-Calls zugreifen zu können. Es gibt keine spezifischen IP-Filter oder Einschränkungen hinsichtlich erlaubter IP-Bereiche, die im Code sichtbar sind.

API-Call Dokumentation

Hintergrundbild abrufen

Endpoint: GET /xml_v1.php?aktion=background_image
Beschreibung: Gibt die URL des Hintergrundbildes zurück. Wenn das Bild nicht existiert, wird ein Standardbild zurückgegeben.
Parameter: Keine.


Buchungen für die iOS KundenApp abrufen

Endpoint: GET /xml_v1.php?aktion=getBuchungen&kundennummer=123&email=test@example.com
Beschreibung: Gibt die Buchungen eines bestimmten Benutzers zurück, identifiziert durch die Kundennummer und die E-Mail-Adresse.
Parameter:
- Name: kundennummer
Datentyp: Integer
Pflicht: Ja
Mögliche Werte: Positive ganze Zahlen
Beispiel: 123
- Name: email
Datentyp: String
Pflicht: Ja
Mögliche Werte: E-Mail-Adressen
Beispiel: test@example.com


Allgemeiner Zugriffsschutz

Endpoint: GET /xml_v1.php (allgemeiner Zugriffsschutz)
Beschreibung: Überprüft die Gültigkeit des Tokens für den Zugriff auf die API. Wenn das Token ungültig ist, wird ein Fehler zurückgegeben.
Parameter:
- Name: token
Datentyp: String
Pflicht: Ja
Mögliche Werte: Gültige Tokens
Beispiel: abc123


Live-Kapazität prüfen

Endpoint: GET /xml_v1.php?aktion=checkLiveCapacity&datum=2023-10-01&hafen_id=1&linie_hafen_fahrplan_id=2
Beschreibung: Prüft die Verfügbarkeit für einen bestimmten Termin und Hafen.
Parameter:
- Name: datum
Datentyp: String
Pflicht: Ja
Mögliche Werte: Datumsangaben im Format YYYY-MM-DD
Beispiel: 2023-10-01
- Name: hafen_id
Datentyp: Integer
Pflicht: Ja
Mögliche Werte: Positive ganze Zahlen
Beispiel: 1
- Name: linie_hafen_fahrplan_id
Datentyp: Integer
Pflicht: Ja
Mögliche Werte: Positive ganze Zahlen
Beispiel: 2


Benutzeranmeldung

Endpoint: POST /xml_v1.php?aktion=login
Beschreibung: Authentifiziert einen Benutzer und gibt die Benutzerdaten zurück.
Parameter:
- Name: name
Datentyp: String
Pflicht: Optional, je nach Authentifizierungsmethode
Mögliche Werte: Benutzername
Beispiel: MaxMustermann
- Name: email
Datentyp: String
Pflicht: Optional, je nach Authentifizierungsmethode
Mögliche Werte: E-Mail-Adresse
Beispiel: max@example.com
- Name: benutzername
Datentyp: String
Pflicht: Optional, je nach Authentifizierungsmethode
Mögliche Werte: Benutzername
Beispiel: MaxM
- Name: passwort
Datentyp: String
Pflicht: Ja
Mögliche Werte: Passwort
Beispiel: mypassword123


Buchung stornieren

Endpoint: GET /xml_v1.php?aktion=storno&reservierung_id=1
Beschreibung: Storniert eine Buchung anhand der Reservierungs-ID.
Parameter:
- Name: reservierung_id
Datentyp: Integer
Pflicht: Ja
Mögliche Werte: Positive ganze Zahlen
Beispiel: 1


Zahlungsmethoden abrufen

Endpoint: GET /xml_v1.php?aktion=getZahlarten
Beschreibung: Gibt die verfügbaren Zahlungsmethoden zurück.
Parameter: Keine.


Gutscheinwert prüfen

Endpoint: GET /xml_v1.php?aktion=checkGutscheinValue&gutscheincode=ABC123&reservierung_id=1
Beschreibung: Überprüft den Wert eines Gutscheins anhand des Gutscheincodes und der Reservierungs-ID.
Parameter:
- Name: gutscheincode
Datentyp: String
Pflicht: Ja
Mögliche Werte: Gutscheincodes
Beispiel: ABC123
- Name: reservierung_id
Datentyp: Integer
Pflicht: Ja
Mögliche Werte: Positive ganze Zahlen
Beispiel: 1


Tickets abrufen

Endpoint: GET /xml_v1.php?aktion=getTickets&datum_start=2023-10-01&datum_stop=2023-10-31
Beschreibung: Gibt alle Tickets innerhalb eines bestimmten Zeitraums zurück.
Parameter:
- Name: datum_start
Datentyp: String
Pflicht: Ja
Mögliche Werte: Datumsangaben im Format YYYY-MM-DD
Beispiel: 2023-10-01
- Name: datum_stop
Datentyp: String
Pflicht: Ja
Mögliche Werte: Datumsangaben im Format YYYY-MM-DD
Beispiel: 2023-10-31


Artikel abrufen

Endpoint: GET /xml_v1.php?aktion=getArtikel&kategorie_id=1&online=true
Beschreibung: Gibt die Artikel aus einer bestimmten Kategorie zurück.
Parameter:
- Name: kategorie_id
Datentyp: Integer
Pflicht: Optional
Mögliche Werte: Positive ganze Zahlen
Beispiel: 1
- Name: online
Datentyp: String
Pflicht: Optional
Mögliche Werte: true oder false
Beispiel: true


Verkehrstage abrufen

Endpoint: GET /xml_v1.php?aktion=verkehrstage&linie_id=1
Beschreibung: Gibt alle Verkehrstage für eine bestimmte Linie zurück.
Parameter:
- Name: linie_id
Datentyp: Integer
Pflicht: Ja
Mögliche Werte: Positive ganze Zahlen
Beispiel: 1


Reservierung einfügen

Endpoint: POST /xml_v1.php?aktion=insertReserveration
Beschreibung: Fügt eine neue Reservierung hinzu.
Parameter:
- Name: data
Datentyp: JSON (Array)
Pflicht: Ja
Mögliche Werte: Enthält alle erforderlichen Reservierungsdaten
Beispiel: {"linie_id":1,"hafen_id":2,"zielhafen_id":3,"buchungscode":"XYZ123"}


Bitte beachten, dass einige API-Calls aufgrund der Ausnahmen nicht dokumentiert wurden.

API-Dokumentation für xml_v2.php

Sicherheitsprüfungen

Der Zugriff auf die API ist durch Token-Überprüfung gesichert. Tokens werden sowohl über GET- als auch POST-Anfragen akzeptiert. Die Authentifizierung erfolgt durch Überprüfung der Token gegen vordefinierte globale Einstellungen. Es gibt keine spezifischen IP-Filter oder Einschränkungen bezüglich erlaubter IP-Bereiche.

API-Calls

Abrufen der Chartertypen

Endpoint: GET /xml_v2.php?call=purp
Beschreibung: Gibt eine Liste der verfügbaren Chartertypen zurück.
Parameter: Keine.


Abrufen der Standorte

Endpoint: GET /xml_v2.php?call=locations
Beschreibung: Gibt eine Liste der verfügbaren Standorte zurück, einschließlich deren Region und Betreiber-IDs.
Parameter: Keine.


Abrufen der Ressourcen

Endpoint: GET /xml_v2.php?call=ressources
Beschreibung: Gibt eine Liste der verfügbaren Ressourcen (Schiffe) zurück.
Parameter: Keine.


Platzreservierung

Endpoint: GET /xml_v2.php?call=place
Beschreibung: Reserviert einen Platz mit den angegebenen Parametern.
Parameter: - Name: typ_id - Datentyp: Integer - Pflicht: Pflicht - Mögliche Werte: ID des Reservierungstyps - Beispiel: 1 - Name: remarks - Datentyp: String - Pflicht: optional - Mögliche Werte: Freitext für Anmerkungen - Beispiel: "Sonderwunsch" - Name: station_id - Datentyp: Integer - Pflicht: Pflicht - Mögliche Werte: ID des Abfahrtsortes - Beispiel: 5 - Name: resource_id - Datentyp: Integer - Pflicht: Pflicht - Mögliche Werte: ID der Ressource (Schiff) - Beispiel: 10 - Name: start - Datentyp: String - Pflicht: Pflicht - Mögliche Werte: Startdatum und -uhrzeit - Beispiel: "2023-04-22 10:00:00" - Name: stop - Datentyp: String - Pflicht: Pflicht - Mögliche Werte: Enddatum und -uhrzeit - Beispiel: "2023-04-22 12:00:00"


Artikelprüfung

Endpoint: GET /xml_v2.php?call=checkItem
Beschreibung: Überprüft die Gültigkeit eines Artikels anhand eines Barcodes.
Parameter: - Name: barcode - Datentyp: String - Pflicht: Pflicht - Mögliche Werte: Barcode des Artikels - Beispiel: "123456-7890"


Stornierung einer Reservierung

Endpoint: GET /xml_v2.php?call=cancel
Beschreibung: Storniert eine Reservierung anhand der Vorgangsnummer.
Parameter: - Name: vorgang_nr - Datentyp: Integer - Pflicht: Pflicht - Mögliche Werte: ID der Reservierung - Beispiel: 12345 - Name: remarks - Datentyp: String - Pflicht: optional - Mögliche Werte: Freitext für Anmerkungen - Beispiel: "Stornierung auf Kundenwunsch"


Abrufen der Preistypen

Endpoint: GET /xml_v2.php?call=getPriceTypes
Beschreibung: Gibt eine Liste der verfügbaren Preistypen zurück.
Parameter: Keine.


Abrufen der Produkt-Keys

Endpoint: GET /xml_v2.php?call=getProductKeys
Beschreibung: Gibt die Produkt-Keys für den angegebenen Portal zurück.
Parameter: - Name: portal - Datentyp: Integer - Pflicht: Pflicht - Mögliche Werte: ID des Portals - Beispiel: 1


Abrufen von Bewertungen

Endpoint: GET /xml_v2.php?call=ratings
Beschreibung: Gibt die Bewertungen für eine bestimmte Linie zurück.
Parameter: - Name: linie_id - Datentyp: Integer - Pflicht: Pflicht - Mögliche Werte: ID der Linie - Beispiel: 2


Abrufen von Kundeninformationen

Endpoint: GET /xml_v2.php?call=getCustomer
Beschreibung: Gibt eine Liste von Kunden basierend auf dem Kundentyp zurück.
Parameter: - Name: customer_category - Datentyp: String - Pflicht: Pflicht - Mögliche Werte: Kommagetrennte Liste von Kundentyp-IDs - Beispiel: "1,2,3"


Abrufen von Buchungen

Endpoint: GET /xml_v2.php?call=getBookings
Beschreibung: Gibt eine Liste von Buchungen für ein bestimmtes Datum zurück.
Parameter: - Name: date - Datentyp: String - Pflicht: Pflicht - Mögliche Werte: Datum im Format yyyy-mm-dd - Beispiel: "2023-04-22"


Diese Dokumentation bietet einen Überblick über die API-Calls in der Datei xml_v2.php. Jeder Call hat spezifische Parameter und Funktionen, die es ermöglichen, verschiedene Informationen abzufragen oder Aktionen durchzuführen.