Archivo de la etiqueta: tpv

TPV Pasarela Virtual ‘La Caixa’ (Cyber P@ck) parsear post usando cURL

Como podemos enviar variables atravez de PHP y cURL vía método POST?

Para empezar necesitamos activarlo, para saber si ya esta activado solo tenemos que crear archivo “info.php” y pegar este código

< ?php phpinfo(); ?>

abrimos las página en nuestro navegador y buscamos por “cURL” y miramos si pone “enabled”

nos dirigimos al directorio del PHP y buscamos por el archivo de php.ini

“php/php.ini”, “php4/php.ini”, “php5/php.ini” o “root/cig-bin/php.ini”
Normal mente dependiendo de nuestro hosting dentro de la carpeta “cig-bin” podemos encontrar el mismo archivo, gracias a eso podemos configurar el server a nuestro gusto e necesidad.

Bien lo editamos con cualquier editor, buscamos linea donde pone “;extension=php_curl.dll”, y simplemente le borramos punto y coma “;”.
Reiniciamos nuestro servidor Apache y ya esta funcionando. =)

En panel de control de la Caixa podemos encontrar documentación al respecto, también podemos encontrar unos ejemplos escritos en ASP, JSP, PHP4 y PHP5 los ejemplos los podéis descargar pinchando aquí

al abrirlos en el navegador nos muestra una especie de pantalla con todo tipo de información, osea un simple Form que envía datos vía método POST a la dirección HTTPS SSL.

Respondo a la pregunta hecha al principio:

para saltarse esta ventana y abrir el siguiente paso, donde el usuario va a introducir los datos de pago hemos de crear siguiente codigo:

Para que nos salte el error “SSL3_GET_SERVER_CERTIFICATE” simplemente desactivamos el control de SSL de cURL añadiendo este comando “CURLOPT_SSL_VERIFYPEER = false”

< ?php
//dirección de pago real
//https://sis.sermepa.es/sis/realizarPago

$url_tpvv='https://sis-t.sermepa.es:25443/sis/realizarPago'; //dirección de test
$clave='qwertyasdf0123456789';
$name='Comercio Pruebas';
$code='999008881'; //código de comercio proporcionado por caixa
$terminal='4'; //número de terminal
$order=date('ymdHis');
$amount='25';
$currency='978';
$transactionType='0';
$urlMerchant='http://www.sermepa.es';
$producto='Zapatos';


$message = $amount.$order.$code.$currency.$transactionType.$urlMerchant.$clave;
$signature = strtoupper(sha1($message));

//variables obligatorias
$data[Ds_Merchant_Amount] = $amount;
$data[Ds_Merchant_Currency] = $currency;
$data[Ds_Merchant_Order] = $order;
$data[Ds_Merchant_MerchantCode] = $code;
$data[Ds_Merchant_Terminal] = $terminal;
$data[Ds_Merchant_TransactionType] = $transactionType;
$data[Ds_Merchant_MerchantURL] = $urlMerchant;
$data[Ds_Merchant_MerchantSignature] = $signature;

//variables secundarias
$data[Ds_Merchant_ProductDescription] = "test";
$data[Ds_Merchant_Titular] = "test";
$data[Ds_Merchant_MerchantCode] = $code;
$data[Ds_Merchant_UrlOK] = "";
$data[Ds_Merchant_UrlKO] = "";
$data[Ds_Merchant_MerchantName] = "";
$data[Ds_Merchant_ConsumerLanguage] = $lang;

foreach($data as $key=>$val) { 
	if (!($reqbody=='')) $reqbody.= "&"; 
		$reqbody.= $key."=".urlencode($val); 
}

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url_tpvv);
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $reqbody);

curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //desactivamos el comprobante de SSL
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1)"); //nos identificamos como un navegador
curl_setopt($ch, CURLOPT_FOLLOWLOCATION  ,true);
curl_setopt($ch, CURLOPT_HEADER ,false); //mostrar cabecera del html
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

echo curl_exec ($ch);
echo curl_error($ch);
curl_close($ch);
?>