Saltar al contenido principal
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.

Diagrama de flujo
processed or authorizedpending_3dsdenied, cancelled, orexpiredprocessed or authorizeddenied, cancelled, orexpired1Create payment2Payment status3Continue fulfillment4Present next_action5Stop payment flow6Shopper authenticateswith issuer7Webhook or Get order8Final payment status
Excepción o detención

1. Crea el pago#

Utilice cualquiera de los patrones de pago con tarjeta admitidos:

  1. Crear un pedido con Crear orden, luego paga con Crear pago.
  2. 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:

JSON
{
  "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:

CampoSignificadoacción
order.payment.data.statuspending_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.actionIdentifica 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_challengeURL 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_idCorrelaciona 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:

  1. Utilice el devuelto url_challenge; no construyas una URL 3DS.
  2. 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.
  3. Conserve sus URL de éxito, fracaso y retorno.
  4. 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.
ResultadoSignificadoAcción de cumplimiento
processedCompra completada.Cumplir una vez que pasen los controles de su negocio.
authorizedLos fondos fueron autorizados pero no capturados.Siga su estrategia de captura; no lo trate como capturado.
pending_3dsLa autenticación aún está incompleta.Espera; no cumplir o reiniciar automáticamente.
processing o authorizingEl pago aún está en curso.Continuar la reconciliación.
denied, cancelledo expiredEl 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_3ds más una authorization_3ds siguiente 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.