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
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <SCRIPT LANGUAGE="JavaScript" SRC="sha1.js"> </SCRIPT> <meta name="Microsoft Theme" content="canvas 011"> </head> <body onload="javascript:calc_Order();" background="cnvbkgnd.jpg" bgcolor="#ffffff" text="#000000" link="#0066cc" vlink="#006666" alink="#996699"><font face="Arial, Arial, Helvetica"> <script> function normalizar(precio) { var precio2=""; if (precio=="") { alert(""); return false; } else { precio=precio.replace(",","."); if (isNaN(precio)) { alert("Introduzca un importe válido"); document.formul.Ds_Merchant_Amount.focus(); document.formul.Ds_Merchant_Amount.focus(); return false; } else { if (precio.indexOf(".") == -1){ precio2 = precio + "00"; } else if (precio.indexOf(".") != -1){ decimales = precio.substring(1+precio.indexOf("."),precio.length); precio2 = precio.substring(0,precio.indexOf(".")) + (decimales.length < 2 ? (decimales.length==0 ? "00":decimales + "0") : decimales.substring(0,2) ); } } } return precio2; } function calc_Order() { var anyo var mes var dia var hours var min var seg anyo = fecha.getYear(); mes = fecha.getMonth() + 1; hours = fecha.getHours(); seg = fecha.getSeconds(); anyo = anyo % 100; document.formul.Ds_Merchant_Order.value=def; } function calcular() { var precio = normalizar(document.formul.Ds_Merchant_Amount.value); if (precio!=false) { var price_converted = new Number(precio); document.formul.Ds_Merchant_Amount.value=price_converted; var x = document.formul.Ds_Merchant_Amount.value + document.formul.Ds_Merchant_Order.value + FUC + Moneda + document.formul.DS_Merchant_TransactionType.value + Clave; document.formul.submit(); } else { document.formul.Ds_Merchant_Amount.value=""; document.formul.Ds_Merchant_Amount.focus(); } } </script> <SCRIPT LANGUAGE="JavaScript"> var Comercio = 'xxxxxxxxxxx'; var FUC = 'xxxxxxxx'; var Clave = 'xxxxxxxx'; var Moneda = '978'; var Terminal = '1'; var Idioma = '1'; var Importe = '100'; var Pedido = '1234512611'; var zz=""; document.write(' <p align="center"> </p> '); document.write(' <p align="center"><strong><font color="#FF0000" size="5">SIMULADOR DE PAGO CON TPV VIRTUAL</font></strong></p> '); document.write(' <p align="center"><strong><font color="#FF0000">CAIXA CATALUNYA</font></p> '); document.write(' </center></strong></u><strong> '); document.write(' <p> </p><p> </p><p><br></p><p><font face="comic sans ms" size="2"></p> '); document.write(' <form name="formul" action="https://sis.sermepa.es/sis/realizarPago" method="POST"> '); document.write(' <p align="center">CODIGO DE PEDIDO: '); document.write(' <input type=text name="Ds_Merchant_Order" width=10> '); document.write(' </p> '); document.write(' <br> '); document.write(' <p align="center">IMPORTE DE LA COMPRA: '); document.write(' <input type=text name="Ds_Merchant_Amount" width=10> '); document.write(' </p> '); document.write(' <br> '); document.write(' <input type="Hidden" name="Ds_Merchant_Currency" value="' + Moneda + '">'); document.write(' <input type="Hidden" name="Ds_Merchant_MerchantCode" value="' + FUC + '"> '); document.write(' <input type="Hidden" name="Ds_Merchant_MerchantName" value="' + Comercio + '"> '); document.write(' <input type="Hidden" name="Ds_Merchant_ConsumerLanguage" value="' + Idioma + '"> '); document.write(' <input type="Hidden" name="Ds_Merchant_Terminal" value="' + Terminal + '"></p> '); document.write(' <input type="Hidden" name="Ds_Merchant_MerchantSignature" value="' + Clave + '"> '); document.write(' <input type="Hidden" name="DS_Merchant_TransactionType" value="0"> '); 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> '); document.write(' </form></font></strong> '); </SCRIPT> </font> </body> </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