Si un pago exige la autenticación mediante 3D Secure, pero no podemos iniciarla, haremos un último intento de completarlo sin la autenticación. El resultado de este cargo alternativo actualiza el estado de PaymentIntent a uno de los siguientes:
succeeded
: el pago se ha completado y se ha creado un objeto Charge con el método de pago suministrado. No hay que hacer nada más.
requires_capture
: la solicitud se ha completado sin autenticación y puedes continuar para capturar los fondos.
requires_payment_method
: el cargo ha fallado y es posible que sea necesario otro método de pago.
Normalmente, un pago que active 3D Secure dará lugar a un PaymentIntent con el estado requires_action
. A continuación te explicamos los pasos de un flujo de pago habitual que solicita 3D Secure:
requires_action
.
Si los pasos 4 o 5 no son satisfactorios, el flujo de pago anterior cambiaría y se parecería al siguiente:
succeeded
, requires_capture
o requires_payment_method
, en función del resultado del pago.
Intentamos hacerlo así en vez de bloquear el pago de inmediato o devolver un error porque decidimos optimizar el proceso para la conversión.
Si el cargo alternativo falla, el estado del PaymentIntent cambia a requires_payment_method
. En caso de que el cargo alternativo se haga satisfactoriamente, este no estará cubierto por la transferencia de responsabilidad, a no ser que tenga el estado attempt_acknowledged
en payment_method_details.card.three_d_secure.result
.
Para obtener más información sobre los pagos no autenticados y la transferencia de responsabilidad, consulta Cómo usar Radar for Fraud Teams para evitar cargos sin transferencia de responsabilidad.