Foros del Web » Estrategias Digitales y Negocios Online » Negocios »

Cómo implementar pasarela de pago Caixa Catalunya (españa)

Estas en el tema de Cómo implementar pasarela de pago Caixa Catalunya (españa) en el foro de Negocios en Foros del Web. Buenas, Después de leer más de 50 post sobre pasarelas de pago y tpv no he conseguido encontrar nada que me quite mis dudas. Sí, ...
  #1 (permalink)  
Antiguo 26/10/2009, 16:02
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Sonrisa Cómo implementar pasarela de pago Caixa Catalunya (españa)

Buenas,

Después de leer más de 50 post sobre pasarelas de pago y tpv no he conseguido encontrar nada que me quite mis dudas.
Sí, es mi primera pasarela de pago con un banco

Sigo sin tener muy claro como implementarla. Sin utilizar ningún e-commerce ni nada por el estilo.

Parto de la siguiente situación:
1) Mi cliente ha abierto una cuenta con el banco Caixa Catalunya (españa).
2) Ha contratado el servicio TPV Virtual
3) Dejo que todo ocurra en el servidor del banco.

He leído que no es complicado, que solo es enviar por POST un formulario con unos valores en concreto. Nada más.

El banco me han pasado un ejemplo "demo" que pego al final del post, pero no sé si es de verdad o no, porque me lleva a la página del banco y me pide numero de cuenta, fecha de caducidad y código de seguridad.

Algunas de mis preguntas:
He leído por aquí

http://dudasweb.blogspot.com/search/...LA%20DE%20PAGO

Qué una vez se envíen los datos a través del formulario el banco me tiene que devolver (a mi aplicación/formulario) un código conforme si el pago se procesa correctamente o no. Y si ejecuto parte del proceso (poniendo datos no verdaderos) el error me lo da el servidor del banco, en ningún momento me redirige al formulario principal.

¿Para que sirve el numero de pedido, se puede repetir? puede ser siempre el mismo? podría ser el identificador del producto?

El código de ejemplo tiene javascript, pero yo me pregunto el javascript es algo que se ve en el lado del cliente por lo que, no se si es muy licito que se vea estos tres campos?
var Comercio = 'xxxxxxxxxxx';
var FUC = 'xxxxxxxx';
var Clave = 'xxxxxxxx';

¿Los ocultaríais?, ¿el problema es que entiendo que hay que pasárselos al formulario como un campo hidden, no? entonces no se pueden ocultar...

Ejemplo demo del banco:

Código php:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  4. <SCRIPT LANGUAGE="JavaScript" SRC="sha1.js">
  5. </SCRIPT>
  6. <meta name="Microsoft Theme" content="canvas 011">
  7. </head>  
  8. <body onload="javascript:calc_Order();" background="cnvbkgnd.jpg" bgcolor="#ffffff" text="#000000" link="#0066cc" vlink="#006666" alink="#996699"><font face="Arial, Arial, Helvetica">
  9.  
  10. <script>
  11.  
  12. function normalizar(precio) {
  13.     var precio2="";
  14.     if (precio=="") {
  15.         alert("");
  16.         return false;
  17.     } else {
  18.         precio=precio.replace(",",".");
  19.         if (isNaN(precio)) {
  20.             alert("Introduzca un importe válido");
  21.             document.formul.Ds_Merchant_Amount.focus();
  22.             document.formul.Ds_Merchant_Amount.focus();
  23.             return false;
  24.         } else {
  25.             if (precio.indexOf(".") == -1){
  26.                     precio2 = precio + "00";
  27.            }  else if (precio.indexOf(".") != -1){             
  28.                     decimales = precio.substring(1+precio.indexOf("."),precio.length);
  29.                     precio2 = precio.substring(0,precio.indexOf(".")) + (decimales.length < 2 ? (decimales.length==0 ? "00":decimales + "0") : decimales.substring(0,2) );
  30.            }
  31.          }
  32.     }
  33.     return precio2;
  34. }
  35.  
  36.  
  37. function calc_Order() {
  38.     var fecha = new Date()
  39.     var anyo
  40.     var mes
  41.     var dia
  42.     var hours
  43.     var min
  44.     var seg
  45.    
  46.     anyo = fecha.getYear();
  47.     mes = fecha.getMonth() + 1;
  48.     dia = fecha.getDate();
  49.     hours = fecha.getHours();
  50.     min = fecha.getMinutes();
  51.     seg = fecha.getSeconds();
  52.     anyo = anyo % 100;
  53.     def = anyo * 10000000000 + mes * 100000000 + dia * 1000000 + hours* 10000 + min * 100 + seg;
  54.        
  55.     document.formul.Ds_Merchant_Order.value=def;
  56. }
  57.  
  58.  
  59. function calcular()
  60. {
  61.     var precio = normalizar(document.formul.Ds_Merchant_Amount.value);
  62.     if (precio!=false) {
  63.         var price_converted = new Number(precio);
  64.         document.formul.Ds_Merchant_Amount.value=price_converted;
  65.         var x = document.formul.Ds_Merchant_Amount.value + document.formul.Ds_Merchant_Order.value + FUC + Moneda + document.formul.DS_Merchant_TransactionType.value + Clave;
  66.         document.formul.Ds_Merchant_MerchantSignature.value=hash(x);
  67.         document.formul.submit();
  68.     } else {
  69.         document.formul.Ds_Merchant_Amount.value="";
  70.         document.formul.Ds_Merchant_Amount.focus();
  71.     }
  72. }
  73.  
  74. </script>
  75.  
  76. <SCRIPT LANGUAGE="JavaScript">
  77.         var Comercio = 'xxxxxxxxxxx';
  78.         var FUC = 'xxxxxxxx';
  79.         var Clave = 'xxxxxxxx';
  80.        
  81.         var Moneda = '978';
  82.         var Terminal = '1';
  83.         var Idioma = '1';
  84.        
  85.         var Importe = '100';
  86.         var Pedido = '1234512611';
  87.         var zz="";
  88.  
  89.  
  90. document.write(' <p align="center">&nbsp;</p> ');
  91. document.write(' <p align="center"><strong><font color="#FF0000" size="5">SIMULADOR DE PAGO CON TPV VIRTUAL</font></strong></p> ');
  92. document.write(' <p align="center"><strong><font color="#FF0000">CAIXA CATALUNYA</font></p> ');
  93. document.write(' </center></strong></u><strong> ');
  94. document.write(' <p>&nbsp;</p><p>&nbsp;</p><p><br></p><p><font face="comic sans ms" size="2"></p> ');
  95. document.write(' <form name="formul" action="https://sis.sermepa.es/sis/realizarPago" method="POST"> ');
  96. document.write('   <p align="center">CODIGO DE PEDIDO: ');
  97. document.write('    <input type=text name="Ds_Merchant_Order" width=10> ');
  98. document.write('   </p> ');
  99. document.write('   <br> ');
  100. document.write('   <p align="center">IMPORTE DE LA COMPRA: ');
  101. document.write('    <input type=text name="Ds_Merchant_Amount" width=10> ');
  102. document.write('   </p> ');
  103. document.write('   <br> ');
  104. document.write('   <input type="Hidden" name="Ds_Merchant_Currency" value="' + Moneda + '">');  
  105. document.write('   <input type="Hidden" name="Ds_Merchant_MerchantCode" value="' + FUC + '"> ');
  106. document.write('   <input type="Hidden" name="Ds_Merchant_MerchantName" value="' + Comercio + '"> ');
  107. document.write('   <input type="Hidden" name="Ds_Merchant_ConsumerLanguage" value="' + Idioma + '"> ');
  108. document.write('   <input type="Hidden" name="Ds_Merchant_Terminal" value="' + Terminal + '"></p> ');
  109. document.write('   <input type="Hidden" name="Ds_Merchant_MerchantSignature" value="' + Clave + '"> ');
  110. document.write('   <input type="Hidden" name="DS_Merchant_TransactionType" value="0"> ');
  111. document.write('   <p><center><a href="#" onclick="javascript:calcular();"><img alt="PAGAR" src="tpvirtual.jpg" border="0" width="74" height="72" align="center" name="tpvvirtual" ></a></center></p> ');
  112. document.write(' </form></font></strong>  ');
  113.  
  114.   </SCRIPT>
  115. </font>
  116. </body>
  117. </html>

Espero que entre todos este post sea un antes y un después en el tema de las pasarelas y pueda servir de ayuda a muchos que se encuentren en la misma situación.

Por eso agradezco más que nunca vuestra ayuda
  #2 (permalink)  
Antiguo 26/10/2009, 16:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Procesadores de pago
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:25.