3D Secure
3DS es un estándar técnico que agrega una capa de seguridad a las transacciones online con tarjeta de crédito o débito. 3D significa "tres dominios". El primero es el emisor de la tarjeta, el segundo el comerciante que recibe el pago, y el tercero es la infraestructura 3DS que actúa como intermediario seguro entre el consumidor y comerciante.
¿Cómo funciona?
paso 1
Recolección de la información de tarjeta
El titular de la tarjeta ingresa sus datos únicos de tarjeta de créito o débito.
paso 2

Redirección a página de proveedor 3DS
Si se confirma la necesidad de 3D secure, entonces el cliente es redirigido a una página 3DS proporcionada por el proveedor de la tarjeta.
paso 3

Autenticación de seguridad adicional
En el sitio web del proveedor, se le pedirá al cliente ingresar su clave o un código de autenticación será enviado a su correo electrónico o teléfono asociado a su cuenta.
paso 4

Redirección a página del comerciante
Si la autenticación del tarjetahabiente es exitosa entonces será redirigido de nuevo al sitio web del comerciante para la confirmación de pago.
paso 5

Página de confirmación del pago
Una vez de regreso en el website del comerciante, se mostrará al cliente que su pago fue exitoso.
¿Cómo implementar 3DS?
- Primero, necesitas ingresar al merchant portal con tus credenciales.
- Desde el menú, navega y selecciona el menú de desarrollador.
- Introduce el URL al que tu cliente será redireccionado cuando el 3DS esté terminado.
- La URL de redireccionamiento de 3DS aparecerá en la siguiente lista, recuerda que puedes modificarlo en cualquier momento.
- Ahora debe crear un cargo utilizando el endpoint de transacciones.
- Si existe la necesidad de que el cliente complete el flujo 3DS, obtendrás una respuesta con código 400, con status pendiente, y el detail.code indicando action_required. En el campo detail.additional_details.action encontrarás 3ds_authenticate indicando que el cliente requiere ser autenticado utilizando 3DS y el campo detail.additional_details.redirect_url apunta al URL al que el cliente será redireccionado cuando sea autenticado.
- Una vez la autenticación sea completada el cliente será redireccionado al URL en el paso 3. El hola.cash_transaction_id es también entregado como parámetro.
- Puede utilizar el ID de transacción para verificar el status de la transacción utilizando los detalles de transacción.
- Cuando la verificación 3DS sea exitosa, un webhook con cargo "succeeded" será enviado al URL definido para webhooks (para más información revisar tutorial de Webhooks), si la autenticación 3DS falla, entonces el webhook con el cargo "failed"será enviado. Siempre puedes utilizar estos webhooks para ejecutar flujos de trabajo específicos en tu aplicación.





transaction_id: str = request.query_params.get("TID", None)
