Autenticación 3DS
3D Secure agrega una capa de autenticación para pagos con tarjeta. Cuando el emisor lo requiere, el cliente debe completar una verificación, normalmente en una página del banco o en un modal dentro de tu sitio.
En integraciones 100% vía API, identificás este caso cuando la confirmación de la intención de pago retorna estado requires_action y un objeto nextAction.
Referencia API relacionada
Redirect
Enviá returnUrl al confirmar la intención de pago.
{
"paymentMethodId": "cl502zv0d0127ebdp3zt27651",
"returnUrl": "https://www.example.com/return"
}
Si se requiere 3DS, la respuesta incluye la URL a la que debés redirigir al cliente.
{
"status": "requires_action",
"nextAction": {
"type": "redirect_to_url",
"redirectToUrl": {
"url": "https://checkout.onvopay.com/authorize/test_clv...",
"returnUrl": "https://www.example.com/return"
}
}
}
Después de completar la autenticación, ONVO redirige al cliente a tu returnUrl con el parámetro payment_intent_id.
https://www.example.com/return?payment_intent_id=cl502zv0d0127ebdp3zt27651
Consultá la intención de pago para confirmar el estado final antes de marcar la orden como pagada.
Modal
También podés manejar 3DS con la librería web de ONVO.
<script src="https://js.onvopay.com/v1/"></script>
Inicializá la librería con tu llave pública y llamá handleNextAction cuando la intención requiera acción.
<script>
const onvo = ONVO("onvo_live_publishable_key_H4PG...");
onvo.handleNextAction({
paymentIntentId: "clrr934wl001mdpkhw2g82rlt",
}).then(function (result) {
if (result.error) {
console.error(result.error);
} else {
console.log(result.paymentIntent);
}
});
</script>
Aunque la autenticación 3DS sea exitosa, validá el estado final de la intención de pago. La transacción todavía puede ser declinada por otros motivos.
Podés probar este flujo con la tarjeta 4000000000003220 en modo de prueba.