Esta traducción se ha generado automáticamente

Pruebas con la API de Rapid Lodging y 3DS 2.0

Prueba tu implementación de SCA con escenarios específicos compatibles con las API

Para probar la API de Rapid Lodging, incluye un encabezado HTTP adicional llamado « test » en la solicitud HTTP y utiliza uno de los valores admitidos por esa API para probar un escenario compatible.

Dentro del flujo de reserva de la autenticación reforzada de clientes (SCA), también puedes usar las respuestas de prueba de Rapid API para probar los métodos de la biblioteca del conector 3D-Secure (3DS).

Registrar un pago

Los valores de encabezados de prueba que se indican a continuación dan como resultado diferentes valores de encoded_init_config en la respuesta de la API y diferentes códigos de respuesta HTTP. El objeto « encoded_init_config » se puede pasar a la llamada « initSession » de la biblioteca «JavaScript » para activar diferentes casos de prueba dentro de la biblioteca del conector 3DS.

Valor del encabezado de pruebaCódigo HTTP y respuestaCaso de prueba de initSession
Estándar201 – Respuesta estándarSUCCESS
init_skip201 – Respuesta sin encoded_init_configNo se admite
init_fail201 – Respuesta estándarFAILED
init_timeout201 – Respuesta estándarTIMEOUT
internal_server_error500 – Error interno del servidor—
internal_server_error503 - Servidor no disponible—

Nota:. Usa init_skip para los casos de prueba de la biblioteca 3DS Connector encoded_init_config, que se pueden pasar a initSession y forzar un statusCode con el valor SKIPPED.

Creación de una reserva

Además de los encabezados de prueba definidos en las solicitudes de prueba de la API de Rapid Lodging para el flujo de reserva « non-SCA », se admiten valores de encabezado de prueba adicionales para el flujo de trabajo de SCA.

>> Más información sobre cómo enviar solicitudes de prueba de alojamiento

Los valores del encabezado de prueba dan lugar a diferentes valores de « encodedChallengeConfig », que se pueden pasar a la llamada de desafío de la biblioteca JavaScript para activar distintos casos de prueba.

Valor del encabezado de pruebaCódigo HTTP y respuestaCaso de prueba de initSession
complete_payment_session201 – Response with Complete Payment Session linkSUCCESS sin interacción con el iframe del usuario
complete_payment_session_show201 – Response with Complete Payment Session linkSUCCESS/FAILED con interacción con el iframe del usuario
complete_payment_session_fail201 – Response with Complete Payment Session linkFAILED sin interacción con el iframe del usuario
complete_payment_session_timeout201 – Response with Complete Payment Session linkTIMEOUT
complete_payment_session_error201 – Response with Complete Payment Session linkERROR

Además de los encabezados de prueba definidos en las solicitudes de prueba de la API de Rapid Lodging para el flujo de reserva « non-SCA », se admiten valores de encabezado de prueba adicionales para el flujo de trabajo de SCA.

>> Más información sobre cómo enviar solicitudes de prueba de alojamiento

Los valores del encabezado de prueba dan lugar a diferentes valores de « encodedChallengeConfig », que se pueden pasar a la llamada de desafío de la biblioteca JavaScript para activar distintos casos de prueba.

Valor del encabezado de pruebaCódigo HTTP y respuestaCaso de prueba de initSession
complete_payment_session201 – Response with Complete Payment Session linkSUCCESS sin interacción con el iframe del usuario
complete_payment_session_show201 – Response with Complete Payment Session linkSUCCESS/FAILED con interacción con el iframe del usuario
complete_payment_session_fail201 – Response with Complete Payment Session linkFAILED sin interacción con el iframe del usuario
complete_payment_session_timeout201 – Response with Complete Payment Session linkTIMEOUT
complete_payment_session_error201 – Response with Complete Payment Session linkERROR

Completa la sesión de pago

Los valores del encabezado de prueba dan lugar a distintos casos de error que pueden surgir al intentar realizar un pago y confirmar una reserva.

Valor del encabezado de pruebaCódigo HTTP y respuesta
payment_declined400 – Payment Declined Response
price_mismatch409 – Price Mismatch Response
rooms_unavailable410 – Rooms Unavailable Response

Biblioteca 3DS Connector y iframe

Para hacer pruebas en 3DS Connector sin depender de recursos externos, los valores de parámetros específicos corresponden con las respuestas de los métodos admitidos. Este comportamiento solo se admite cuando el iframe se carga con la URL del entorno de pruebas.

Inicio de la sesión

Puedes comprobar los valores compatibles con el initSessionResponse statusCode variando el initSessionRequest encoded_init_config.

Valor statusCodeValor encodedInitConfig de prueba
SUCCESSW3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94SW5pdE91dHB1dENvbmZpZyI6ICJTVUNDRVNTIn1d
FAILEDW3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94SW5pdE91dHB1dENvbmZpZyI6ICJGQUlMRUQifV0=
TIMEOUTW3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94SW5pdE91dHB1dENvbmZpZyI6ICJUSU1FT1VUIn1d
SKIPPEDNo se admite en este momento.

Nota: Los valores encoded_init_config también se pueden generar con los encabezados de prueba que admite la API de registro del pago.

Desafío

Puedes comprobar los valores compatibles con el challengeResponse statusCode variando el challengeRequest encoded_challenge_config.

Valor statusCodeValor encoded_Challenge_config de pruebaDescripción
SUCCESSW3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94Q2hhbGxlbmdlT3V0cHV0Q29uZmlnIjogIlNVQ0NFU1MifV0Sin interacción con el iframe del usuario
SUCCESS / FAILEDW3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94Q2hhbGxlbmdlT3V0cHV0Q29uZmlnIjogIlNIT1cifV0Sin interacción con el iframe del usuario
FAILEDW3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94Q2hhbGxlbmdlT3V0cHV0Q29uZmlnIjogIkZBSUxFRCJ9XQSin interacción con el iframe del usuario
TIMEOUTW3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94Q2hhbGxlbmdlT3V0cHV0Q29uZmlnIjogIlRJTUVPVVQifV0
ERRORW3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94Q2hhbGxlbmdlT3V0cHV0Q29uZmlnIjogIkVSUk9SIn1d

Los valores de « encoded_init_config » también se pueden generar con los encabezados de prueba compatibles con el flujo SCA de la API de reservas.

Nota: Cuando compruebes si el código de estado del desafío es SUCCESS o FAILED según lo que introduzcas en el iframe, la respuesta del método de desafío esperará a que termine la interfaz de autenticación simulada en el iframe.

Ejemplo de interfaz de usuario en iframe 3DS:

Ejemplo de iframe 3DS

Ejemplo de uso

Este ejemplo muestra cómo usar los valores predefinidos de los parámetros para probar la biblioteca con un desafío 3DS sin que el usuario tenga que interactuar con el iframe.

var c = new PayThreeDSConnector.ThreeDSConnector('threedsiframe', 'https://static.pay.expedia.com'); // change to match the 3DS iframe ID
c.setup({ referenceId: '1000' })
    .then((setupResponse) => {
        console.log('Setup Output: ', setupResponse);
        return c.initSession({
            paymentSessionId: 1,
            encodedInitConfig: 'W3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94SW5pdE91dHB1dENvbmZpZyI6ICJTVUNDRVNTIn1d',
        }); // SUCCESS
    })
    .then((initResponse) => {
        console.log('InitSession Output: ', initResponse);
        $('#threedsIframeModal').modal(); // replace with code to show the modal containing the 3DS iframe
        return c.challenge({
            paymentSessionId: 1,
            encodedChallengeConfig:
                'W3sicHJvdmlkZXJJZCI6IDAsICJzYW5kYm94Q2hhbGxlbmdlT3V0cHV0Q29uZmlnIjogIlNVQ0NFU1MifV0=',
        }); // SUCCESS
    })
    .then((challengeResponse) => {
        console.log('Challenge Output: ', challengeResponse);
    })
    .finally(() => {
        $('#threedsIframeModal').modal('hide'); // replace with code to hide the modal containing the 3DS iframe
    });

Autenticación 3DS y pago aplazado

Al hacer una reserva con una modelo de pay-later, Expedia no realiza ningún cargo en la tarjeta. En lugar de eso, se lo mandamos al proveedor para que se encargue de ello. El proveedor puede usar esta información para validar la tarjeta antes de hacer la reserva. Se espera que el viajero pague en persona al llegar.

Sin embargo, a veces los planes cambian y, en ese caso, el proveedor puede cobrarte una tarifa de « no-show ». Estas transacciones pueden verse afectadas por la normativa de la SCA, ya que implican realizar un cargo en una tarjeta cuando el viajero no está presente.

Si las transacciones se ven afectadas, los pagos pueden fallar o los proveedores pueden enfrentarse a sanciones por parte de las entidades emisoras de tarjetas si el cargo es non-compliant.

Para proteger nuestra relación con nuestros proveedores y seguir prestando servicio a nuestros socios, Expedia Group ofrece una vía opcional para cumplir con los requisitos: Expedia Group puede encargarse de la autenticación en su nombre. Esto permite a los proveedores proteger su negocio y garantiza que Rapid API pueda seguir ofreciendo la misma variedad de opciones.

En la API de Rapid Lodging, esto se indica mediante el indicador « payment_registration_recommended=true » en el archivo de contenido del alojamiento y en el contenido del alojamiento, lo que te puede ayudar a identificar una propiedad cuando pueda estar relacionada con el proyecto.

Posibles repercusiones en una integración

Si quieres ofrecer proveedores que puedan exigir una autenticación segura, el proceso de reserva debería ser compatible con 3DS. Si no es compatible con 3DS, es posible que la reserva de estas opciones falle si el banco « card-issuing » determina que es necesaria una autenticación para la transacción.

Cuando se cobre una cuota de « no-show », Rapid API figurará como Merchant en el registro. El nombre que aparecerá en el extracto de la tarjeta como descripción del cargo lo pondrá tu organización, no el alojamiento. Para personalizar este texto, contacta con el servicio de asistencia para colaboradores de Rapid.

Para seguir cumpliendo con los requisitos de las marcas de tarjetas y el proceso de lanzamiento de « Rapid API », usa la API de Accepted Payments para mostrar el « processing_country » en la página « check-out » en caso de que no-show. Esto es obligatorio para todas las transacciones en las que Rapid API figure como « Merchant » (entidad de pago), y puede ocurrir si se utiliza 3DS y se produce una « no-show » (autenticación de la tarjeta).

Cómo mitigar los efectos de la integración

Si una integración de Rapid API no admite la autenticación segura en el proceso de reserva, puedes reducir el riesgo de que las reservas fallen eliminando a los proveedores cuyos anuncios no cumplan con los requisitos. Ponte en contacto con el servicio de asistencia de Rapid Partner para que eliminen las tarifas afectadas de tus respuestas de la API de disponibilidad.

Cuando se utiliza una herramienta de agente, la transacción queda exenta de la SCA según lo establecido en la normativa. Usa el campo « sales_channel » de la API de disponibilidad para indicarlo.

Resolución de errores

A través de las API de creación de reserva y finalización de la sesión de pago se pueden confirmar reservas y transacciones de pago.

Ten en cuenta las siguientes instrucciones en tu integración para evitar pérdidas económicas y situaciones que involucren una gestión por parte del cliente:

OrigenFunciónConfiguración de tiempo de espera sugeridaProceso de recuperación de erroresAcciones necesarias
Rapid APIComprobación de precios antes de la reserva para el token de registro del pago10 segundosVuelve a intentarlo o selecciona otra opción de alojamiento, habitación o tarifa-
JavaScriptConfiguración de 3DS Connector10 segundosVuelve a intentar la misma solicitud-
Rapid APIRegistro de la sesión de pago10 segundosVuelve a intentar la misma solicitud sin el proceso «Expect: 100-continue»-
JavaScriptInicio de la sesión de pago10 segundosVuelve a intentar la misma solicitud-
Rapid APICreación de una reserva90 segundosVuelve a intentar la misma solicitudEn caso de cualquier error: Recupera la reserva con affiliate_reference_id
JavaScriptMostrar solicitud de autenticación10 segundosVuelve a intentar la misma solicitud-
JavaScriptEsperar a challenge.statusCode180 ~ 1200 segundosSolicita la finalización de la sesión de pago-
Rapid APIFinalización de la sesión de pago90 segundosVuelve a intentar la misma solicitudEn caso de cualquier error: Recupera la reserva con affiliate_reference_id
Rapid APIEn caso de cualquier error: Recupera la reserva con affiliate_reference_id30 segundosVuelve a intentar la misma solicitudPara todos los errores: espera 90 segundos antes de volver a intentarlo para confirmar el estado final de las reservas mediante el código de respuesta de la API 404 o 200

>> Más información sobre la SCA

>> Descubre nuestra solución SCA con 3DS 2.0

¿Te ha resultado útil esta página?
¿Cómo podemos mejorar este contenido?
¡Gracias por ayudarnos a mejorar!