buenas tardes,
He estado siguiendo las indicaciones de vuestro video de configuración de TPV Virtual de SERMEPA, y el problema que tengo es que al realizar una prueba de compra, no conecta con las URLs de Sermepa:
$url_tpvv='https://sis-t.sermepa.es:25443/sis/realizarPago'; // URL de Sermepa para entorno de pruebas.
//$url_tpvv='https://sis.sermepa.es/sis/realizarPago'; // URL de Sermepa para entorno real
He probado con las dos y aparece directamente la siguiente ventana de error que os adjunto
Sabéis dónde puede estar el fallo??
Muchas gracias, slds,
URL del sitio: Contenido solo visible a usuarios registrados
Hola Jose,
¿Nos puedes copiar la url a la que te envía Virtuemart, aunque salga un solo segundo se puede intentar capturar con el "imprimir pantalla"?
La web que nos has indicado es Contenido solo visible a usuarios registrados, pero parece extraño tener sin configurar la plantilla y estar en pasarela real. ¿Es esa web la que tiene el problema?
Saludos
Hola, Jordi
La url a la que te envía Virtuemart es https://sis.redsys.es/sis/realizarPago, que es la pasarela de pago de entorno real según me han dicho los de Cajamar
la web que tiene el problema es www.aranjuez.mundosensaciones.es
no sé por qué sale código oculto para usuarios no registrados,tal vez puse mal la url...
Hola Jose, el motivo por el que la web aparece solo un segundo cuando te redirige a la pasarela es que hay puesto este código:
document.forms.form.submit();
En la configuración del método de pago de tu VirtueMart...
Podrías quitar ese código y colocar un botón para que tengas que darle manualmente a enviar el formulario y así puedes ver el código de la firma y ver si se está generando correctamente..
Saludos
Hola, David
Perdona, pero me puedes decir cómo colocar el botón ?? Aquí ya me pierdo........ muchas gracias
Hola Jose,
tendrías que quitar el código javascript que te dije antes y al final del formulario añadir un input de tipo submit... como te pongo en este ejemplo...
<form name="form" action="" method="post"> <input type="hidden" name="Ds_Merchant_Amount" value="" /> <input type="hidden" name="Ds_Merchant_Currency" value="" /> <input type="hidden" name="Ds_Merchant_Order" value="" /> <input type="hidden" name="Ds_Merchant_ProductDescription" value="" /> <input type="hidden" name="Ds_Merchant_Titular" value="first_name ?> last_name ?>" /> <input type="hidden" name="Ds_Merchant_MerchantCode" value="" /> <input type="hidden" name="Ds_Merchant_MerchantURL" value="" /> <input type="hidden" name="Ds_Merchant_UrlOK" value="" /> <input type="hidden" name="Ds_Merchant_UrlKO" value="" /> <input type="hidden" name="Ds_Merchant_MerchantName" value="" /> <input type="hidden" name="Ds_Merchant_MerchantSignature" value="" /> <input type="hidden" name="Ds_Merchant_Terminal" value="" /> <input type="hidden" name="Ds_Merchant_TransactionType" value="" />
Saludos
Muchas gracias, David
La firma está generando un código alfanumérico de 40 dígitos, pero no sé si es correcto
Hola,
La firma tiene un aspecto como el que comentas, por lo que parece correcto. La mejor forma de comprobar si está bien es enviar estos datos a la pasarela de pago. Si te da algún error entonces significa que hay algún dato que no se ha enviado correctamente. Si te pide los datos de la tarjeta significa que está todo bien.
Hola, Pablo
Al enviar estos datos a la pasarela devuelve una ventana de error de Sermepa "los datos enviados no son correctos"
Mirando el código de esta ventana de error, indica error sis0042, que indica qiue la firma enviada no es correcta, pero el problema es que no sé como solucionarlo....
Cómo lo ves???
Muchas gracias!
Hola,
La url de encriptación tiene varias formas de ser calculada. Una sería la normal y otra sería la ampliada. Es posible que con Bancaja no se esté usando el mismo método que tienes en el código que has pegado.
En primer lugar asegúrate que tienes puesta como url la del entorno real, es decir, tiene que estar algo como lo siguiente:
f("order_id").'&option=com_virtuemart&Itemid=16'; $urlKO = JURI::base().'index.php?option=com_content&view=article&id=19'; $urlMerchant= JURI::base().'administrator/components/com_virtuemart/notify_servired.php'; // Para poder definir una URL del comercio es necesario usar PHP5 $descripcion = 'Compra productos en nombre_negocio'; // No es posible usar PHP4 para poder enviar en la firma la url del comercio. $order = '000'.$db->f("order_id"); $amount=$db->f("order_total")*100; $message = $amount.$order.$code.$currency.$tipoOperacion.$urlMerchant.$clave; $signature = strtoupper(sha1($message)); //Para que no vaya al cobro cuando se está en la página de detalles del pedido if( $page == "checkout.thankyou" ) { ?> <form name="form" action="" method="post"> <input type="hidden" name="Ds_Merchant_Amount" value="" /> <input type="hidden" name="Ds_Merchant_Currency" value="" /> <input type="hidden" name="Ds_Merchant_Order" value="" /> <input type="hidden" name="Ds_Merchant_ProductDescription" value="" /> <input type="hidden" name="Ds_Merchant_Titular" value="first_name ?> last_name ?>" /> <input type="hidden" name="Ds_Merchant_MerchantCode" value="" /> <input type="hidden" name="Ds_Merchant_MerchantURL" value="" /> <input type="hidden" name="Ds_Merchant_UrlOK" value="" /> <input type="hidden" name="Ds_Merchant_UrlKO" value="" /> <input type="hidden" name="Ds_Merchant_MerchantName" value="" /> <input type="hidden" name="Ds_Merchant_MerchantSignature" value="" /> <input type="hidden" name="Ds_Merchant_Terminal" value="" /> <input type="hidden" name="Ds_Merchant_TransactionType" value="" /> document.forms.form.submit();
Por supuesto, en este código tendrás que poner tu código de comercio, nombre de negocia, clave y terminal. Si no te funciona tendrías que solicitar la documentación de la configuración de la pasarela de pago a Bancaja para verificar de qué forma se calcula la clave de encriptación.
Hola, Pablo
Está en entorno real y me dicen en Cajamar que la clave de encriptación se calcula con el método sha completo
Hola Jose, suena a que hay alguna variable mal introducida... si los pasos se han seguido correctamente no tiene por que fallar ese punto, hay muchas pasarelas SERMEPA montadas con ese tipo de forma de pago en VM 1.1 y todas funcionan bien... revisa que has puesto las variables correctamente por favor, nosotros no podemos revisar ese punto por que no podemos ver el código de la forma de pago...
Saludos!
Hola, David
He hablado de nuevo con el banco y han cambiado a sha completo y ampliado; voy a hacer algunas pruebas, pero ahora parece que conecta correctamente!
Muchas gracias por vuestra ayuda, un saludo!!
OK, me alegro,
ya nos dices si te funciona correctamente y si podemos dar el hilo por solucionado para cerrarlo...
Saludos!