Librerías PHP / JAVA / .NET

 

A continuación se presentan los pasos que debe seguir un comercio para la utilización de las librerías proporcionadas por Banco Sabadell:

 

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

 

include(“./apiRedsys.php”);

// El comercio debe decidir si la importación desea hacerla con la función “include” o “required”, según los desarrollos realizados.
<%@page import=”sis.redsys.api.ApiMacSha256”%>

/*El comercio debe incluir en la vía de construcción del proyecto todas las librerías(JARs) que se proporcionan*/

lib 
apiSha256.jar 
bcprov - jdk15on-1.4.7.jar 
commons - codec - 131.3.jar 
org.json.jar
Using RedsysAPIPrj;

 

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

 

$miObj = new RedsysAPI;
ApiMacSha256 apiMacSha256 = new ApiMacSha256();
RedsysAPI r = new RedsysAPI();

 

3. Capturar los parámetros de la notificación on-line:

 

$version = $_GET[“Ds_SignatureVersion”]; 
$params = $_GET[“Ds_MerchantParameters”]; 
$firmaRecibida = $_GET[“Ds_Signature”];
String version = request.getParameter(“Ds_Signature­Version”);
String params = request.getParameter(“Ds_MerchantPa­rameters”);
String signatureRecibida = request.getParameter(“Ds_Signature”);
string version = Request.QueryString[“Ds_Signature­Version”];
string parms = Request.QueryString[“Ds_MerchantPa­rameters”];
string firmaRecibida = Request.QueryString[“Ds_Sig­nature”];

 

4. 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 capturado. Para ello se debe llamar a la función de la librería “createMerchantSignatureNotif ()”con la clave de comercio facilitada y el parámetro Ds_MerchantParameters capturado, tal y como se muestra a continuación:

 

$clave = ‘sq7HjrUOBfKmC576ILgskD5srU870gJ7’; 
$firma = $miObj->createMerchantSignatureNotif($clave,$datos);
String clave = “sq7HjrUOBfKmC576ILgskD5srU870gJ7”;
String signatureCalculada = apiMacSha256.createMerchantSignatureNotif(clave, params);
string clave = “sq7HjrUOBfKmC576ILgskD5srU870gJ7”;
string firmaCalculada = r.createMerchantSignatureNotif( clave, parms);

 

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) 
{ 
//FIRMA OK. Realizar tareas de servidor 
} 
else 
{ 
//FIRMA KO. Error, firma inválida. 
}
if (signatureCalculada.equals(signatureRecibida)) 
{ 
System.out.println(“FIRMA OK. Realizar tareas en el servidor”);
}
else
{
System.out.println(“FIRMA KO. Firma inválida”);
}
If (firmaRecibida == firma Calculada) 
{ 
//FIRMA OK. Mostrar mensaje en la URLOK 
} 
Else 
{ 
//FIRMA KO. Mostrar mensaje en la URLKO 
}

 

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 notificación on-line, tal y como se muestra en el apartado Respuesta online. Para llevar a cabo la obtención del 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_Res­ponse”);
String codigoRespuesta = ApiMacSha256.getParameter(“DS_Response”);