Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Una ayudita con pasarela sermepa

Estas en el tema de Una ayudita con pasarela sermepa en el foro de PHP en Foros del Web. Llevo todo el dia buscando info sobre la pasarela de pago de la caixa, pero no consigo que funcione correctamente. A ver si alguien puede ...
  #1 (permalink)  
Antiguo 17/08/2013, 16:20
 
Fecha de Ingreso: abril-2013
Ubicación: Barcelona
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Exclamación Una ayudita con pasarela sermepa

Llevo todo el dia buscando info sobre la pasarela de pago de la caixa, pero no consigo que funcione correctamente. A ver si alguien puede echarme una mano para entender que es lo que falla...

El caso es que he creado un formulario que guarda los registros en una BD y posteriormente conecta a la pasarela de pago para que cobre una cantidad especificada... os pongo el trozo de código que debe conectar y realizar el cobro:

Código:
<?
...
$amount = 1250;
$currency = 978;
$order = 012345678901;
$code = 123456789;
$transaction = 0;
$url = "http://www.sugerente.es";
$clave = "qwertyasdf0123456789";
$firma = sha1($amount.$order.$code.$currency.$transaction.$url.$clave);


?>

<form action="https://sis-t.sermepa.es:25443/sis/realizarPago" method="post">

<input type="hidden" name="Ds_Merchant_Amount" value="1250">
<input type="hidden" name="Ds_Merchant_Currency" value="978">
<input type="hidden" name="Ds_Merchant_Order" value="012345678901">
<input type="hidden" name="Ds_Merchant_ProductDescription" value="Producto de prueba">
<input type="hidden" name="Ds_Merchant_Titular" value="Cliente de prueba">
<input type="hidden" name="Ds_Merchant_MerchantCode" value="123456789">
<input type="hidden" name="Ds_Merchant_MerchantName" value="Tienda de pruebas">
<input type="hidden" name="Ds_Merchant_ConsumerLanguage" value="1">
<input type="hidden" name="Ds_Merchant_MerchantURL" value="http://www.sugerente.es">
<input type="hidden" name="Ds_Merchant_MerchantSignature" value="<? $firma; ?>">
<input type="hidden" name="Ds_Merchant_Terminal" value="1">
<input type="hidden" name="Ds_Merchant_TransactionType" value="0">
<input type="submit" value="Aceptar">
</form>
Una vez enviado el formulario, conecta con la Caixa, pero da un error de "Error en datos enviados. Contacte con su comercio."

Muchas gracias por vuestros comentarios
  #2 (permalink)  
Antiguo 17/08/2013, 19:26
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Una ayudita con pasarela sermepa

Holas,

Me imagino que tendras algun manual que te mencione como usar la pasarela, desconosco si para usar esa pasarela es gratis o no, sin un usuario o acceso, pero creo que deberias revisar mas información en su pagina.

Segun veo el codigo es correcto o normal, pero de alli lo que te retorne la pasarela es cuestion de permisos, accesos, datos, etc.

Si tienes mas información de la pasarela nos cuentas.

Saludos,
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 17/08/2013, 19:33
 
Fecha de Ingreso: abril-2013
Ubicación: Barcelona
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Una ayudita con pasarela sermepa

Hola Gildus, no, no tengo absolutamente nada, ni un triste ejemplo... todo lo que ves es de cosas que he leido por aqui y por allá...

Eso si, para pagar 100€ por la pasarela, la Caixa no te pone problemas...
  #4 (permalink)  
Antiguo 17/08/2013, 19:38
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Una ayudita con pasarela sermepa

Justo encontre esto que capaz pueda servirte:

http://www.forosdelweb.com/f10/pasar...da-php-898624/

Si encuentras por alli un manual, o script de ejemplos para conectarse y creo que son con accesos y estar afiliado creo, pero ya nos cuentas.

Saludos,
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 18/08/2013, 02:44
 
Fecha de Ingreso: abril-2013
Ubicación: Barcelona
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Una ayudita con pasarela sermepa

Bueno, finalmente he conseguido que funcione, gracias gildus por ponerme en la linea.

De todas maneras voy a poner el código entero por si alguien se encuentra en mi misma situación.

Código:
<HTML>
<HEAD>
  <TITLE>PhP Form Example</TITLE>
</HEAD>
<BODY>

<?PHP
// If form is submitted with all required data then show the form
// else show error page
empty($Formulario) ?							
	  ShowForm($Ds_Merchant_Amount,$Ds_Merchant_Currency,$prod) :
	  ShowError();
exit;
?>

<?PHP


function ShowError () {
	echo "<html><head><title>Results</title></head><body><table width=100% height=50%><tr><td><p><h2><center>Compruebe que todos los datos del formulario son correctos!!</center></h2></p></td></tr></table></body></html>\n";
} # End of function ShowError

function ShowForm ($amount,$currency,$producto) {
// Posted data
global $HTTP_POST_VARS;

// Valores constantes del comercio
$url_tpvv='https://sis-t.sermepa.es:25443/sis/realizarPago';
$clave='qwertyasdf0123456789';
$name='Comercio Pruebas';
$code='123456789';
$terminal='1';
$order=date('ymdHis');
$amount='25';
$currency='978';
$transactionType='0';
$urlMerchant='http://www.sermepa.es';
$producto='Zapatos';

// Now, print the HTML script
echo "<html><head><title>Comercio Simulador</title></head>
<script language=JavaScript>
function calc() { 
vent=window.open('','tpv','width=725,height=600,scrollbars=no,resizable=yes,status=yes,menubar=no,location=no');
document.forms[0].submit();}
</script>
<body bgcolor=white>
<form name=compra action=$url_tpvv method=post target=tpv>
<pre>
<table>
<tr><td>
<h2>Comercio de prueba.</h2>
</td></tr><tr><td>
Comercio: <font color=blue>$name</font>
</td></tr><tr><td>
FUC: <font color=blue>$code</font>
</td></tr><tr><td>
Terminal: <font color=blue>$terminal</font>
</td></tr><tr><td>
Pedido: <font color=blue>$order</font>
</td></tr><tr><td>
Producto: <font color=blue>$producto</font>
</td></tr><tr><td>
Importe: <font color=blue>$amount</font>
</td></tr><tr><td>
Tipo de Operacion: <font color=blue>$transactionType (Autorización)</font>
</td></tr><tr><td>
URL del comercio: <font color=blue>$urlMerchant</font>
</td></tr><tr><td>";

// Currency strings 
if ($currency == "978") {
	echo "Moneda: <font color=blue>Euros</font>";
}

echo "</td>
</tr><tr><td>
<input type=hidden name=Ds_Merchant_Amount value='$amount'>
</td></tr><tr><td>
<input type=hidden name=Ds_Merchant_Currency value='$currency'>
</td></tr><tr><td>
<input type=hidden name=Ds_Merchant_Order  value='$order'>
</td></tr><tr><td>
<input type=hidden name=Ds_Merchant_MerchantCode value='$code'>
</td></tr><tr><td>
<input type=hidden name=Ds_Merchant_Terminal value='$terminal'>
</td></tr><tr><td>
<input type=hidden name=Ds_Merchant_TransactionType value='$transactionType'>
</td></tr><tr><td>
<input type=hidden name=Ds_Merchant_MerchantURL value='$urlMerchant'>
</td></tr><tr><td>";

// Compute hash to sign form data
// $signature=sha1_hex($amount,$order,$code,$currency,$clave);
$message = $amount.$order.$code.$currency.$transactionType.$urlMerchant.$clave;
$signature = strtoupper(sha1($message));

echo "<input type=hidden name=Ds_Merchant_MerchantSignature value='$signature'>
</td></tr>
</table>
<center><a href='javascript:calc()'><img src='/tpvirtual.jpg' border=0 ALT='TPV Virtual'></a></center>
</pre>
</form>										  
</body></html>";
} # End of function ShowForm
?>
Obviamente sólo hay que cambiar el código del comercio (FUC)

Etiquetas: formulario, pasarela, registro, sermepa
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 01:50.