Comprobaciones de seguridad
En el archivo run_channelmanager_result.
php se implementan comprobaciones de seguridad básicas. Se comprueba un token de portal para garantizar que sólo los usuarios autorizados pueden acceder a la API. También hay restricciones en el uso de la API, como el número máximo de accesos por hora y minuto. No se documentan filtros IP específicos ni otras medidas de seguridad.
Documentación sobre llamadas a la API
Obtener estaciones
Punto final: GET /run_channelmanager_result.php?call=fetchstations&portal={portal}
Descripción: devuelve una lista de las estaciones disponibles.
Parámetros:
- Nombre: portal
Tipo: Integer
Obligatorio: Sí
Valores posibles y su significado: Número de cliente del portal
Ejemplo: 71
Relaciones
Punto final: GET /run_channelmanager_result.php?call=relations&portal={portal}&station_id={station_id}&date={fecha}&destination_id={id_destino}&hidePrice={hidePrice}&hideRueckfahrt={hideRueckfahrt}&lhf_id={lhf_id}&linie_id={linie_id}
Descripción: Proporciona los datos de horarios y conexiones entre dos estaciones en una fecha determinada.
Parámetros:
- Nombre: portal
Tipo: Entero
Obligatorio: Sí
Valores posibles y su significado: Número de cliente del portal
Ejemplo: 71
- Nombre: station_id
Tipo: Integer
Obligatorio: Sí
Posibles valores y su significado: ID de la estación de inicio
Ejemplo: 1
- Nombre: date
Tipo: String
Obligatorio: Sí
Valores posibles y su significado: Fecha en el formato AAAA-MM-DD
Ejemplo: 2023-10-01
- Nombre: zielstation_id
Tipo: Entero
Obligatorio: Sí
Posibles valores y su significado: ID de la estación de destino
Ejemplo: 2
- Nombre: hidePrice
Tipo: Booleano
Obligatorio: No
Valores posibles y su significado: true
o false
Ejemplo: false
- Nombre: hideRueckfahrt
Tipo: Booleano
Obligatorio: No
Valores posibles y su significado: true
o false
Ejemplo: false
- Nombre: lhf_id
Tipo: Entero
Obligatorio: No
Valores posibles y su significado: ID de la entrada de puerto de línea
Ejemplo: 3
- Nombre: linie_id
Tipo: Integer
Obligatorio: No
Posibles valores y su significado: ID de la línea
Ejemplo: 5
Disponibilidad
Punto final: GET /run_channelmanager_result.php?call=availability&portal={portal}&product={producto}&start={start}&stop={stop}
Descripción: Comprueba la disponibilidad de un producto durante un periodo de tiempo determinado.
Parámetros:
- Nombre: portal
Tipo: Entero
Obligatorio: Sí
Valores posibles y su significado: Número de cliente del portal
Ejemplo: 71
- Nombre: product
Tipo: String
Obligatorio: Sí
Posibles valores y su significado: ID del producto
Ejemplo: 12345
- Nombre: start
Tipo: String
Obligatorio: Sí
Valores posibles y su significado: Fecha de inicio en el formato AAAA-MM-DD HH:MM:SS
Ejemplo: 2023-10-01 10:00:00
- Nombre: stop
Tipo: Cadena
Obligatorio: Sí
Valores posibles y su significado: Fecha de fin en el formato AAAA-MM-DD HH:MM:SS
Ejemplo: 2023-10-01 12:00:00
Cancelar
Punto final: GET /run_channelmanager_result.php?call=cancel&portal={portal}&booking_reference={booking_reference}
Descripción: Cancela una reserva existente basada en la referencia de reserva.
Parámetros:
- Nombre: portal
Tipo: Integer
Obligatorio: Sí
Valores posibles y su significado: Número de cliente del portal
Ejemplo: 71
- Nombre: booking_reference
Tipo: Integer
Obligatorio: Sí
Posibles valores y su significado: Número de referencia de la reserva
Ejemplo: 123456
Reserva
Punto final: POST /run_channelmanager_result.php?call=booking
Descripción: Crea una nueva reserva y devuelve los detalles de la misma.
Parámetros:
- Nombre: product
Tipo: String
Obligatorio: Sí
Valores posibles y su significado: Product ID
Ejemplo: 12345
- Nombre: customer
Tipo: String
Obligatorio: Sí
Valores posibles y su significado: Nombre del cliente
Ejemplo: Max Mustermann
- Nombre: customer_first_name
Tipo: String
Obligatorio: Sí
Posibles valores y su significado: Nombre del cliente
Ejemplo: Max
- Nombre: email
Tipo: String
Obligatorio: Sí
Posibles valores y su significado: Dirección de correo electrónico del cliente
Ejemplo: max@mustermann.de
- Nombre: phone
Tipo: String
Obligatorio: No
Posibles valores y su significado: Número de teléfono del cliente
Ejemplo: 0123456789
- Nombre: date
Tipo: String
Obligatorio: Sí
Posibles valores y su significado: Fecha de la reserva en el formato AAAA-MM-DD
Ejemplo: 2023-10-01
- Nombre: ticket
Tipo: Array
Obligatorio: Sí
Posibles valores y su significado: Lista de tickets con tipo y número
Beispiel: [{"id":1,"type":1,"quantity":2}]
Respuesta por defecto
Punto final: GET /run_channelmanager_result.php
Descripción: Devuelve una respuesta estándar si no se reconoce ninguna llamada específica a la API.
Parámetros: No se requieren parámetros específicos.
Resumen
Las llamadas a la API anteriores permiten a los usuarios recuperar información sobre estaciones, obtener datos sobre horarios, comprobar la disponibilidad, cancelar reservas y crear nuevas reservas. Cada llamada tiene parámetros específicos que son necesarios para su correcta ejecución.
Controles de seguridad
La protección de acceso se implementa en el archivo run_fahrplan_ausgabe.php
. Se comprueba si la dirección IP del cliente está disponible en una lista autorizada. En caso contrario, se deniega el acceso. También hay una comprobación de sesión que garantiza que los usuarios no autentificados sólo tengan acceso restringido. No se mencionan explícitamente otras medidas de seguridad, como la verificación de tokens o los filtros de IP.
Llamadas a la API
Calendario de eventos
Punto final: run_fahrplan_ausgabe.php?action=eventcalendar
Descripción: esta llamada genera un calendario de eventos vinculados a identificadores de línea y puerto específicos. Permite recuperar los horarios de un periodo concreto y devolverlos en formato de calendario.
Parámetros: - Nombre: linie_typ_id
- Tipo de datos: Cadena - Obligatorio: Sí - Valores posibles: IDs de los tipos de línea a visualizar. - Ejemplo: 1,2,3
- Nombre:
date
- Tipo: Cadena
- Obligatorio: No
- Valores posibles: Una fecha en formato alemán (por ejemplo
dd.mm.aaaa
). - Ejemplo:
15/03/2023
- Nombre:
extra_months
- Tipo: Entero
- Obligatorio: No
- Valores posibles: Número de meses que hay que sumar o restar a la fecha.
- Ejemplo:
2
- Nombre:
use_station_id
- Tipo: Entero
- Obligatorio: No
- Valores posibles: ID de la estación a utilizar.
- Ejemplo:
5
- Nombre:
newwindow
- Tipo: booleano
- Obligatorio: No
- Valores posibles:
true
ofalse
- Ejemplo:
true
- Nombre:
godirect
- Tipo: Booleano
- Obligatorio: No
- Valores posibles:
true
ofalse
- Ejemplo:
false
- Nombre:
target
- Tipo: String
- Obligatorio: No
- Valores posibles: URL de destino para los enlaces.
- Ejemplo:
someTarget
Búsqueda de viajes
Punto final: run_fahrplan_ausgabe.php?aktion=fahrtsuche
Descripción: Esta llamada busca los viajes disponibles en función de los criterios introducidos y devuelve una lista de los viajes encontrados.
Parámetros: - Nombre: station_id
- Tipo: Entero - Obligatorio: Sí - Valores posibles: ID de la estación de salida. - Ejemplo: 1
- Nombre:
start
- Tipo: String
- Obligatorio: Sí
- Valores posibles: Fecha de inicio en formato alemán (p. ej.
dd.mm.aaaa
). - Ejemplo:
15/03/2023
- Nombre:
period
- Tipo: Entero
- Obligatorio: Sí
- Valores posibles: Periodo en días.
- Ejemplo:
5
- Nombre:
linientyp_id
- Tipo: Entero
- Obligatorio: Sí
- Valores posibles: ID del tipo de línea.
- Ejemplo:
2
Lista de categorías
Punto final: run_fahrplan_ausgabe.php?action=listcategories
Descripción: Esta llamada devuelve una lista de categorías relevantes para las líneas y sus trayectos.
Parámetros: - Nombre: start
- Tipo: Integer - Obligatorio: No - Valores posibles: Una fecha a partir de la cual deben mostrarse las categorías. - Ejemplo: 1672537600
(Unix timestamp)
- Nombre:
max
- Tipo: Entero
- Obligatorio: No
- Valores posibles: Especifica si se debe limitar el número máximo de categorías mostradas.
- Ejemplo:
10
- Nombre:
station_id
- Tipo: Entero
- Obligatorio: Sí
- Valores posibles: ID de la estación.
- Ejemplo:
3
Días de tráfico
Punto final: run_fahrplan_ausgabe.php?aktion=verkehrstage
Descripción: Esta llamada determina los días de tráfico para la línea y el periodo de tiempo especificados.
Parámetros: - Nombre: hafen_id
- Tipo: Entero - Obligatorio: Sí - Valores posibles: ID del puerto. - Ejemplo: 4
- Nombre:
datum_start
- Tipo: String
- Obligatorio: Sí
- Valores posibles: Fecha de inicio en formato alemán (p. ej.
dd.mm.aaaa
). - Ejemplo:
01/03/2023
- Nombre:
datum_stop
- Tipo: Cadena
- Obligatorio: Sí
- Valores posibles: Fecha final en formato alemán (p. ej.
dd.mm.aaaa
). - Ejemplo:
31/03/2023
- Nombre:
linien_ids
- Tipo: Cadena
- Obligatorio: Sí
- Valores posibles: Lista de identificadores de línea separados por comas.
- Ejemplo:
1,2,3
Buscar
Punto final: run_fahrplan_ausgabe.php?action=find
Descripción: esta llamada busca trayectos en función de varios criterios y devuelve los resultados.
Parámetros: - Nombre: linien_ids
- Tipo de datos: Cadena - Obligatorio: Sí - Valores posibles: Lista de identificadores de línea separados por comas. - Ejemplo: 1,2,3
- Nombre:
linie_typ_id
- Tipo: Entero
- Obligatorio: No
- Valores posibles: ID del tipo de línea.
- Ejemplo:
1
- Nombre:
start_datum
- Tipo: Cadena
- Obligatorio: Sí
- Valores posibles: Una fecha en formato alemán (por ejemplo,
dd.mm.aaaa
). - Ejemplo:
15/03/2023
Días de transporte (modo)
Punto final: run_fahrplan_ausgabe.php?modus=verkehrstage
Descripción: Esta llamada devuelve los días de transporte de la línea especificada, en función del modo.
Parámetros: - Nombre: linien_ids
- Tipo de datos: Cadena - Obligatorio: Sí - Valores posibles: Lista separada por comas de ID de línea. - Ejemplo: 1,2,3
- Nombre:
start_datum
- Tipo: Cadena
- Obligatorio: Sí
- Valores posibles: Una fecha en formato alemán (por ejemplo,
dd.mm.aaaa
). - Ejemplo:
15/03/2023
- Nombre:
end_datum
- Tipo: Cadena
- Obligatorio: Sí
- Valores posibles: Fecha en formato alemán (
dd.mm.aaaa
). - Ejemplo:
15.04.2023
Conclusión
El archivo contiene varias llamadas a la API que permiten consultar diversa información sobre horarios y líneas. Cada llamada tiene parámetros específicos que son necesarios para que funcione correctamente. Las llamadas API aquí documentadas están diseñadas para ser utilizadas por sistemas o aplicaciones externas.
Controles de seguridad
En el archivo xml_v1.
php se implementan comprobaciones de seguridad que controlan el acceso a determinadas llamadas de la API basadas en tokens e inicios de sesión de usuario. Se comprueba si el token transferido es válido y si el usuario ha iniciado sesión. Se requieren tokens válidos para acceder a la mayoría de las llamadas a la API. No hay filtros de IP específicos ni restricciones en los rangos de IP permitidos visibles en el código.
Documentación de las llamadas a la API
Recuperar imagen de fondo
Punto final: GET /xml_v1.php?action=background_image
Descripción: devuelve la URL de la imagen de fondo. Si la imagen no existe, se devuelve una imagen por defecto.
Parámetros: Ninguno.
Recuperar reservas para la aplicación de cliente iOS
Extremo: GET /xml_v1.php?aktion=getBuchungen&kundennummer=123&email=test@example.com
Descripción: Devuelve las reservas de un usuario específico, identificado por el número de cliente y la dirección de correo electrónico.
Parámetros:
- Nombre: Número de cliente
Tipo: Entero
Obligatorio: Sí
Valores posibles: Enteros positivos
Ejemplo: 123
- Nombre: email
Tipo: String
Obligatorio: Sí
Valores posibles: Direcciones de correo electrónico
Ejemplo: test@example.com
Protección de acceso general
Punto final: GET /xml_v1.php
(protección de acceso general)
Descripción: comprueba la validez del token de acceso a la API. Si el token no es válido, se devuelve un error.
Parámetros:
- Nombre: token
Tipo: String
Obligatorio: Sí
Valores posibles: Tokens válidos
Ejemplo: abc123
Comprobar capacidad activa
Endpoint: GET /xml_v1.php?action=checkLiveCapacity&date=2023-10-01&port_id=1&line_port_schedule_id=2
Descripción: Comprueba la disponibilidad para una fecha y un puerto concretos.
Parámetros:
- Nombre: date
Tipo: String
Obligatorio: Sí
Valores posibles: Fechas en formato AAAA-MM-DD
Ejemplo: 2023-10-01
- Nombre: harbour_id
Tipo: Entero
Obligatorio: Sí
Valores posibles: Enteros positivos
Ejemplo: 1
- Nombre: linie_hafen_fahrplan_id
Tipo: Entero
Obligatorio: Sí
Valores posibles: Enteros positivos
Ejemplo: 2
Inicio de sesión de usuario
Punto final: POST /xml_v1.php?action=login
Descripción: Autentica un usuario y devuelve los datos del usuario.
Parámetros:
- Nombre: name
Tipo de datos: String
Obligatorio: Opcional, dependiendo del método de autenticación
Valores posibles: Nombre de usuario
Ejemplo: MaxMustermann
- Nombre: email
Tipo: Cadena
Obligatorio: Opcional, dependiendo del método de autenticación
Valores posibles: Dirección de correo electrónico
Ejemplo: max@example.com
- Nombre: username
Tipo: Cadena
Obligatorio: Opcional, dependiendo del método de autenticación
Valores posibles: Nombre de usuario
Ejemplo: MaxM
- Nombre: password
Tipo: Cadena
Obligatorio: Sí
Valores posibles: Contraseña
Ejemplo: mypassword123
Cancelar reserva
Punto final: GET /xml_v1.php?action=cancellation&reservation_id=1
Descripción: Cancela una reserva basándose en el ID de reserva.
Parámetros:
- Nombre: reservation_id
Tipo: Entero
Obligatorio: Sí
Valores posibles: Enteros positivos
Ejemplo: 1
Recuperar métodos de pago
Punto final: GET /xml_v1.php?action=getPaymentMethods
Descripción: Devuelve los métodos de pago disponibles.
Parámetros: Ninguno.
Comprobar valor del vale
Punto final: GET /xml_v1.php?action=checkGutscheinValue&gutscheincode=ABC123&reservierung_id=1
Descripción: Comprueba el valor de un vale utilizando el código del vale y el ID de la reserva.
Parámetros:
- Nombre: vouchercode
Tipo: Cadena
Obligatorio: Sí
Valores posibles: Voucher codes
Ejemplo: ABC123
- Nombre: reservation_id
Tipo: Entero
Obligatorio: Sí
Valores posibles: Enteros positivos
Ejemplo: 1
Recuperar entradas
Endpoint: GET /xml_v1.php?aktion=getTickets&datum_start=2023-10-01&datum_stop=2023-10-31
Descripción: Devuelve todos los tickets dentro de un periodo de tiempo determinado.
Parámetros:
- Nombre: datum_start
Tipo: Cadena
Obligatorio: Sí
Valores posibles: Fechas en el formato AAAA-MM-DD
Ejemplo: 2023-10-01
- Nombre: datum_stop
Tipo: Cadena
Obligatorio: Sí
Valores posibles: Fechas en formato AAAA-MM-DD
Ejemplo: 2023-10-31
Recuperar artículo
Endpoint: GET /xml_v1.php?action=getArticle&category_id=1&online=true
Descripción: Devuelve los artículos de una categoría específica.
Parámetros:
- Nombre: kategorie_id
Tipo: Entero
Obligatorio: Opcional
Valores posibles: Enteros positivos
Ejemplo: 1
- Nombre: online
Tipo: String
Obligatorio: Opcional
Valores posibles: true
o false
Ejemplo: true
Recuperar días de tráfico
Endpoint: GET /xml_v1.php?action=días_tráfico&id_línea=1
Descripción: Devuelve todos los días de tráfico de una línea específica.
Parámetros:
- Nombre: line_id
Tipo: Entero
Obligatorio: Sí
Valores posibles: Enteros positivos
Ejemplo: 1
Insertar reserva
Punto final: POST /xml_v1.php?action=insertReserveration
Descripción: Añade una nueva reserva.
Parámetros:
- Nombre: data
Tipo: JSON (Array)
Obligatorio: Sí
Valores posibles: Contiene todos los datos requeridos de la reserva
Ejemplo: {"line_id":1, "port_id":2, "destination_id":3, "booking_code": "XYZ123"}
Tenga en cuenta que algunas llamadas a la API no se han documentado debido a las excepciones.
Documentación de la API para xml_v2.php
Comprobaciones de seguridad
El acceso a la API está protegido mediante verificación de token. Los tokens se aceptan mediante solicitudes GET y POST. La autenticación se realiza comprobando los tokens con parámetros globales predefinidos. No hay filtros de IP específicos ni restricciones en cuanto a los rangos de IP permitidos.
Llamadas a la API
Recuperación de los tipos de carta
Punto final: GET /xml_v2.php?call=purp
Descripción: Devuelve una lista de los tipos de carta disponibles.
Parámetros: Ninguno.
Recuperar las ubicaciones
Punto final: GET /xml_v2.php?call=localizaciones
Descripción: Devuelve una lista de ubicaciones disponibles, incluidos sus ID de región y operador.
Parámetros: Ninguno.
Recuperar recursos
Punto final: GET /xml_v2.php?call=recursos
Descripción: devuelve una lista de recursos disponibles (buques).
Parámetros: Ninguno.
Reserva de plazas
Punto final: GET /xml_v2.php?call=plaza
Descripción: Reserva una plaza con los parámetros especificados.
Parámetros: - Nombre: typ_id - Tipo de datos: Entero - Obligatorio: Obligatorio - Valores posibles: ID del tipo de reserva - Ejemplo: 1 - Nombre: observaciones - Tipo: String - Obligatorio: Opcional - Valores posibles: Texto libre para observaciones - Ejemplo: "Petición especial" - Nombre: station_id - Tipo: Integer - Obligatorio: Obligatorio - Valores posibles: ID del punto de partida - Ejemplo: 5 - Nombre: resource_id - Tipo: entero - Obligatorio: Obligatorio - Valores posibles: ID del recurso (barco) - Ejemplo: "Solicitud especial" - Nombre: resource_id - Tipo: entero - Obligatorio: Obligatorio - Valores posibles: ID del recurso (barco) ID del recurso (barco) - Ejemplo: 10 - Name: start - Tipo: String - Obligatorio: Obligatorio - Posibles valores: Fecha y hora de inicio - Ejemplo: "2023-04-22 10:00:00" - Name: stop - Tipo: String - Obligatorio: Obligatorio - Posibles valores: Fecha y hora de fin - Ejemplo: "2023-04-22 12:00:00"
Comprobación del artículo
Punto final: GET /xml_v2.php?call=checkItem
Descripción: Comprueba la validez de un artículo mediante un código de barras.
Parámetros: - Nombre: código de barras - Tipo de datos: Cadena - Obligatorio: Obligatorio - Valores posibles: Código de barras del artículo - Ejemplo: "123456-7890"
Cancelación de una reserva
Endpoint: GET /xml_v2.php?call=cancelar
Descripción: Cancela una reserva basándose en el número de transacción.
Parámetros: - Nombre: vorgang_nr - Tipo de datos: Entero - Obligatorio: Obligatorio - Valores posibles: ID de la reserva - Ejemplo: 12345 - Nombre: observaciones - Tipo: String - Obligatorio: opcional - Valores posibles: Texto libre para observaciones - Ejemplo: "Cancelación a petición del cliente"
Recuperación de los tipos de precio
Punto final: GET /xml_v2.php?call=getPriceTypes
Descripción: Devuelve una lista de los tipos de precios disponibles.
Parámetros: Ninguno.
Recuperación de las claves de producto
Punto final: GET /xml_v2.php?call=getProductKeys
Descripción: Devuelve las claves de producto del portal especificado.
Parámetros: - Nombre: portal - Tipo de datos: Entero - Obligatorio: Obligatorio - Valores posibles: ID del portal - Ejemplo: 1
Recuperación de valoraciones
Punto final: GET /xml_v2.php?call=calificaciones
Descripción: Devuelve las valoraciones de una línea concreta.
Parámetros: - Nombre: line_id - Tipo de datos: Integer - Obligatorio: Obligatorio - Valores posibles: ID de la línea - Ejemplo: 2
Recuperación de la información del cliente
Punto final: GET /xml_v2.php?call=getCustomer
Descripción: Devuelve una lista de clientes basada en el tipo de cliente.
Parámetros: - Nombre: customer_category - Tipo de datos: String - Obligatorio: Obligatorio - Valores posibles: Lista separada por comas de IDs de tipos de clientes - Ejemplo: "1,2,3"
Recuperación de reservas
Punto final: GET /xml_v2.php?call=getBookings
Descripción: Devuelve una lista de reservas para una fecha específica.
Parámetros: - Nombre: fecha - Tipo de datos: Cadena - Obligatorio: Obligatorio - Valores posibles: Fecha en formato aaaa-mm-dd - Ejemplo: "2023-04-22"
Esta documentación proporciona una visión general de las llamadas a la API en el archivo xml_v2.php. Cada llamada tiene parámetros y funciones específicos que permiten consultar información o realizar acciones.