Librería PHP

 

A continuación se presentan los pasos que debe seguir un comercio para la utilización de la librería PHP proporcionada por Banco Sabadell:

 

1. Importar el fichero principal de la librería, tal y como se muestra a continuación:

include_once 'redsysHMAC256_API_PHP_4.0.2/apiRedsys.php';

El comercio debe decidir si la importación desea hacerla con la función “include” o “required”, según los desarrollos realizados.

 

2. Definir un objeto de la clase principal de la librería, tal y como se muestra a continuación:

$miObj = new RedsysAPI;

 

3. Capturar los parámetros de la respuesta:

$version = $_GET ["Ds_SignatureVersion"];
$params = $_GET ["Ds_MerchantParameters"];
$signatureRecibida = $_GET ["Ds_Signature"];

 

4. Decodificar el parámetro Ds_MerchantParameters. Para llevar a cabo la decodificación de este parámetro, se debe llamar a la función de la librería “decodeMerchantParameters()”, tal y como se muestra a continuación:

$decodec = $miObj->decodeMerchantParameters($params);

 

5. Una vez se ha realizado la llamada a la función “decodeMerchantParameters()”, se puede obtener el valor de cualquier parámetro que sea susceptible de incluirse en la respuesta (Anexo Parámetros Entrada-Salida.). Para llevar a cabo la obtención d el valor de un parámetro se debe llamar a la función “getParameter()” de la librería con el nombre de parámetro, tal y como se muestra a continuación para obtener el código de respuesta:

$codigoRespuesta = $miObj->getParameter("Ds_Response");

 

NOTA IMPORTANTE: Es importante llevar a cabo la validación de todos los parámetros que se envían en la comunicación.

 

6. Validar el parámetro Ds_Signature. Para llevar a cabo la validación de este parámetro se debe calcular la firma y compararla con el parámetro Ds_Signature Para ello se debe llamar a la función de la librería “createMerchantSignatureNotif()” con la clave obtenida del módulo de administración y el parámetro Ds_MerchantParameters capturado, tal y como se muestra a continuación:

$clave = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7';
$signatureCalculada = $miObj->createMerchantSignatureNotif($clave,$params);

 

7. Una vez hecho esto, ya se puede validar si el valor de la firma enviada coincide con el valor de la firma calculada, tal y como se muestra a continuación:

if ($signatureCalculada === $signatureRecibida)
{
echo "FIRMA OK. Realizar tareas en el servidor";
} 
else
{
echo "FIRMA KO. Error, firma inválida";
}