Archive for Noviembre 26th, 2008

Cyberpac: TPV de La Caixa para CubeCart

Aun sin tener ni pajolera idea de programación ni de PHP he conseguido modificar un gateway de los que vienen por defecto en el CubeCart para integrarlo con el sistema Cyberpac que usa La Caixa.

En realidad ha resultado muy sencillo. El único problema que he experimentado ha sido el tener que renunciar al formato de número de pedido que usa CubeCart, por contener guiones, y lo he cambiado por el que sugiere el ejemplo… la fecha vamos.

He creado las variables necesarias en el archivo de administración:

$module['desc'] -> descripcion
$module['id'] -> identificador de comercio
$module['key'] -> clave SHA1
$module['term'] -> codigo de terminal
$module['currency'] -> moneda
$module['merchanturl'] -> URL de la tienda

Y en el archivo principal he modificado las variables globales que devuelve CubeCart (lo he dicho bien??) para que la web de transacciones no dé error:

$order = date(‘ymdHis’);  //el tema de antes, como número de pedido usaremos la fecha con segundos

$transactionType=’0′; //creo que hay distintos tipos de transacción, pero esta es la que tiene que ser.

$amount=$orderSum['prod_total']*100; // el valor que envía CubeCart como total luego la pasarela de pago lo interpreta como dividido entre 100, por lo que lo multiplicamos.

$message=$amount.$order.$module['id'].$module['currency'].$transactionType.$module['merchanturl'].$module['key'];

$signature = strtoupper(sha1($message)); //esto es la firma de todos los conceptos que enviamos a la pasarela de pago. Se juntan en una sola variable y se codifican con la clave que nos dan mediante SHA1.

En fin, en el formulario que vamos a enviar mediante post tienen que existir los siguientes valores:

<input type=’hidden’ name=’Ds_Merchant_Amount’ value=’”.$amount.”‘ />

<input type=’hidden’ name=’Ds_Merchant_Currency’ value=’”.$module['currency'].”‘ />

<input type=’hidden’ name=’Ds_Merchant_Order’ value=’”.$order.”‘ />

<input type=’hidden’ name=’Ds_Merchant_MerchantCode’ value=’”.$module['id'].”‘ />

<input type=’hidden’ name=’Ds_Merchant_Terminal’ value=’”.$module['term'].”‘ />

<input type=’hidden’ name=’Ds_Merchant_TransactionType’ value=’”.$transactionType.”‘ />

<input type=’hidden’ name=’Ds_Merchant_MerchantURL’ value=’”.$module['merchanturl'].”‘ />

<input type=’hidden’ name=’Ds_Merchant_MerchantSignature’ value=’”.$signature.”‘ />”;

Y como colofón final, nos agenciamos de la última parte del gateway de PayPal para usarlo de forma similar, diferenciando modo de prueba (sandbox) o modo en producción:

if($module['testMode']==1) {

$formAction = “https://sis-t.sermepa.es:25443/sis/realizarPago”;
$formMethod = “post”;
$formTarget = “_self”;

} else {

$formAction = “https://sis.sermepa.es/sis/realizarPago”;
$formMethod = “post”;
$formTarget = “_self”;

}

Si no te apetece copiar y pegar te lo puedes bajar de aquí -> cyberpac

MaNoTaS práctica 01

umh1

Programa para el ensamblador de MaNoTaS que realiza operaciones de suma, resta, multiplicación y división.

practica01.ass

practica01.ejc