Retorno de tarjeta
Esta funcionalidad permite al sitio obtener la tarjeta utilizada en una transacción, esta información es útil para acciones de dispersión o servicios internos del comercio que la requieran.
Para retornar la tarjeta cifrada actualmente disponemos de los siguientes algoritmos junto con sus respectivos tamaños de llave:
- aes-128-cbc (16)
- aes-192-cbc (24)
- aes-256-cbc (32)
- des-ede3-cbc (24)
El campo PAN está codificado en BASE64 y es la concatenación de la tarjeta cifrada más el vector de inicialización (IV), el cual se genera con el mismo tamaño de la llave utilizada para el cifrado.
Respuesta del servicio
{
"additional": {
"PAN": "klbrfTC1ol9BV7sFP9bw66nLH77QMYAA3GRZrzjutciFv/gqg9xZs8n7gPNxRRsl"
}
}
La llave de cifrado utilizada en este ejemplo con el algoritmo "aes-128-cbc" proviene de la configuración del sitio y se proporciona durante la implementación con la pasarela de pagos.
En este caso, la llave es oX1R9A2DoxEziVqT
.
Retorno de tarjeta
<?php
// Valores iniciales
$PAN = 'klbrfTC1ol9BV7sFP9bw66nLH77QMYAA3GRZrzjutciFv/gqg9xZs8n7gPNxRRsl';
$key = 'oX1R9A2DoxEziVqT';
$algorithm = 'aes-128-cbc';
$iv_size = strlen($key);
// Se convierte de BASE64 a binario
$encoded = base64_decode($PAN);
// Se extrae el IV y la tarjeta cifrada
$iv = mb_substr($encoded, -$iv_size, null, '8bit');
$encrypted = mb_substr($encoded, 0, -$iv_size, '8bit');
// Se procede a descifrar la tarjeta
$cardNumber = openssl_decrypt($encrypted, $algorithm, $key, OPENSSL_RAW_DATA, $iv);
FAQs
¿Cómo habilitar la funcionalidad de retorno de tarjeta?
Se debe solicitar durante la fase inicial del proceso de integración del comercio o comunicarse con nuestra mesa de ayuda.