Flujo de compra de 3DS
Maneje la autenticación pendiente, presente la siguiente acción y confirme el estado del pago final.
En esta página
La integración de 3DS es un flujo de trabajo de estado de pago. Crea el pago normalmente, reacciona cuando regrese DEUNA pending_3ds, presente la siguiente acción devuelta y espere un estado de pago final autorizado.
1. Crea el pago#
Utilice cualquiera de los patrones de pago con tarjeta admitidos:
- Crear un pedido con Crear orden, luego paga con Crear pago.
- Utilice la solicitud única Crear pago fluya cuando se ajuste a su integración.
Envíe información completa del comprador, facturación, pedido y dispositivo. Estas señales ayudan al emisor a decidir si la autenticación puede realizarse sin fricciones.
2. Inspeccione la respuesta de pago.#
Una respuesta capaz de desafiar sigue esta forma:
{
"order": {
"order_id": "75029759-4a64-42cd-b0b6-9f12777707b7",
"status": "pending",
"payment": {
"data": {
"id": "75029759-4a64-42cd-b0b6-9f12777707b7",
"method_type": "credit_card",
"status": "pending_3ds",
"next_action": {
"action": "authorization_3ds",
"authorization_3ds": {
"version": "2.2.0",
"url_challenge": "https://api.deuna.io/transactions/next-action/...",
"three_ds_flow_id": "0f5a8f52-7f95-4a1f-9ee8-e92946547ea9"
}
}
}
}
}
}Utilice estos campos como fuente de verdad:
| Campo | Significado | acción |
|---|---|---|
order.payment.data.status | pending_3ds significa que la autenticación no ha finalizado. | Mantener el pago sin resolver y presentar la siguiente acción. |
order.payment.data.next_action.action | Identifica la acción requerida del cliente. | Manejar authorization_3ds con el SDK DEUNA compatible o los datos de desafío devueltos. |
order.payment.data.next_action.authorization_3ds.url_challenge | URL DEUNA de corta duración para la experiencia de autenticación. | Ábralo solo en el modo de presentación admitido para la conexión. |
order.payment.data.next_action.authorization_3ds.three_ds_flow_id | Correlaciona el flujo de autenticación. | Consérvelo para solucionar problemas; no lo utilice como comprobante de pago. |
Por compatibilidad, algunas integraciones también pueden recibir un nivel superior authorization_3ds objeto. Las nuevas implementaciones deberían preferir next_action.
3. Presenta la siguiente acción#
SDK Web
Uso initNextAction(...) cuando desee que DEUNA administre el comportamiento modal, iframe o de redireccionamiento admitido. Ver el Referencia del SDK web.
Integración directa del navegador
Si realiza la siguiente acción usted mismo:
- Utilice el devuelto
url_challenge; no construyas una URL 3DS. - Siga el modo de presentación configurado. No fuerce la página de un emisor en un iframe cuando se requiera una redirección de nivel superior.
- Conserve sus URL de éxito, fracaso y retorno.
- Trate una ventana cerrada, una devolución de llamada o un redireccionamiento como una señal para recuperar el estado, no como un pago exitoso.
Aplicaciones nativas
Utilice el SDK DEUNA compatible o un navegador/vista web seguro del sistema. Configure el enlace profundo/devolución y restaure el contexto de pago cuando el comprador regrese a la aplicación.
4. Espere el estado del pago final.#
Mientras la autenticación esté abierta, el pago permanece pending_3ds. El éxito de la autenticación sólo permite que continúe la autorización; no significa dinero movido.
Utilice ambos:
- verificado Webhooks DEUNA para cambios de estado asincrónicos; y
- Obtener orden cuando el cliente regresa o cuando su sistema necesita conciliar un resultado incierto.
| Resultado | Significado | Acción de cumplimiento |
|---|---|---|
processed | Compra completada. | Cumplir una vez que pasen los controles de su negocio. |
authorized | Los fondos fueron autorizados pero no capturados. | Siga su estrategia de captura; no lo trate como capturado. |
pending_3ds | La autenticación aún está incompleta. | Espera; no cumplir o reiniciar automáticamente. |
processing o authorizing | El pago aún está en curso. | Continuar la reconciliación. |
denied, cancelledo expired | El pago no se completó. | Mostrar un resultado recuperable y comenzar un nuevo intento sólo cuando sea apropiado. |
Consulta Flujo de trabajo y estados de pago para cada estado de pago público y transición.
5. Maneje la autenticación sin fricciones#
Es posible que la autenticación sin fricciones no regrese pending_3ds porque el emisor puede autenticarse y dejar que la autorización continúe en la misma solicitud. Por lo tanto, su código debe admitir ambos resultados:
- un estado de pago inmediato final o en curso; o
pending_3dsmás unaauthorization_3dssiguiente acción.
No requiere la presencia de una URL de desafío para determinar si se evaluó 3DS.
6. Tiempos de espera y reintentos#
Las ventanas de impugnación de emisores varían. DEUNA puede retener un pago en pending_3ds hasta la ventana de autenticación configurada; la salvaguardia del servicio actual no supera los 10 minutos. Después del vencimiento, el pago pasa a un estado de falla reportada y el comprador debe iniciar un nuevo intento de pago.
- No reutilice una URL de desafío vencida.
- No cree intentos de pago repetidos mientras el primer pago aún no se haya resuelto.
- Utilice el estado final y
allow_retry/guía de error estandarizada cuando esté disponible antes de ofrecer otro intento. - Si el enrutamiento selecciona otra conexión compatible, deje que DEUNA decida si se puede reutilizar un resultado de autenticación existente.
7. Interprete los detalles de autenticación de forma segura#
DEUNA Admin puede mostrar resultados técnicos de 3DS, como la versión del protocolo, el tipo de flujo, ECI, el resultado de la autenticación y los identificadores de transacciones de red. Úselos para apoyo, reconciliación y análisis de disputas.
No almacene ni exponga criptogramas sin procesar, respuestas de autenticación completa ni cuestione HTML en los registros de comerciantes. Un estado de pago, no un ECI o un evento de finalización de desafío, controla el cumplimiento.