Para realizar compras por medio de 3D Secure son necesarios los siguientes requisitos:
- Habilitación del panel para el uso de 3D Secure por medio de Soporte.
- Integración correcta del script de antifraude.
- Registro de cliente y tokenización de tarjeta previo a realizar el intento de pago.
- Una intento de transacción que haya retornado un código de respuesta 71.
- Habilitar dominios dentro del panel de negocio (https://app.pagandocheck.com)
Ejemplo de respuesta del servicio create-order que requiere validación
{
type: string,
key: string,
message: string,
code: 71,
data: {
error: false,
message: string,
object: {
id: <Identificador de la orden>
}
}
}
Una vez realizado el intento de compra dentro de la aplicación cliente se deberá de ejecutar la función
PagandoCheck.run3DSecure({ token, userId, cardId, orderId })
Ésta ejecutará el proceso de validación de 3D Secure, para esto pueden suceder dos casos:
Compra sin verificación explicita
Si el emisor de la tarjeta verifica que con la información adicional puede aprobar la transacción, la función retornará valor true para continuar con la operación.
Compra con verificación explicita
Si el emisor de la tarjeta responde que la información adicional no es suficiente para la aprobación del pago se activa su propia verificación. Eso se realiza por medio de un pop-up que aparece de manera automática.
En este pop-up el cliente deberá de confirmar su identidad por medio del procedimiento especificado por el banco emisor. Si el cliente logra completar el challenge la función retornará valor true, en caso contrario retornara false.
Si la función retorna true se deberá de llamar al siguiente servicio:
Tipo de petición: POST
Ruta de petición: https://api.pagandocheck.com/v1/pagando/orders/pay-order
Headers: Autorization: Bearer <token provisto>
El servicio cuenta con los mismos parámetros enviados en el servicio de /create-order
con la adición del parámetro: orderId: <Identificador de la orden>
dentro del body principal.
Ejemplo de implementación en Node JS (async/await)
const authParams = {
// Tu token de acceso
token: accessToken,
// Identificador del cliente registrado en la API
userId: userId,
// Identificador de la tarjeta registrada en la API
cardId: cardId,
// Identificador de la orden a autenticar
orderId: orderId
};
const authSuccessful = await PagandoCheck.run3DSecure(authParams);
if(authSuccessful){
//Proceder con el pago '/orders/pay-order
} else {
// Proceder con proceso de pago rechazado.
}
Ejemplo de implementación en Node JS (callback)
3-D Secure Pagando Check API
const authParams = {
// Tu token de acceso
token: accessToken,
// Identificador del cliente registrado en la API
userId: userId,
// Identificador de la tarjeta registrada en la API
cardId: cardId,
// Identificador de la orden a autenticar
orderId: orderId
};
PagandoCheck.run3DSecure(authParams, function(authSuccessful){
if(authSuccessful){
//Proceder con el pago '/orders/pay-order
} else {
// Proceder con proceso de pago rechazado.
}
});
Asegurate que la implementación que utilices para el cliente sea única (no combinar una implementación async/await con una de callback).