Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Enviar y recibir valor función

Estas en el tema de Enviar y recibir valor función en el foro de Javascript en Foros del Web. Buenos días, estoy intentando enviar una firma ceca. La firma la tengo creada, pero quiero al hacer click en el botón querría recoger el valor ...
  #1 (permalink)  
Antiguo 25/04/2019, 02:08
 
Fecha de Ingreso: agosto-2003
Mensajes: 8
Antigüedad: 20 años, 8 meses
Puntos: 0
Enviar y recibir valor función

Buenos días, estoy intentando enviar una firma ceca. La firma la tengo creada, pero quiero al hacer click en el botón querría recoger el valor del campo SESION-CURSO, pasarla a la función SHA-256 y que el resultado me lo devuelva en el campo Firma para poder enviarlo encriptado que es como piden en Ceca.
Os adjunto el código a ver si me podeís echar una mano por que estoy un poco perdido...
Gracias!
Código:
<HTML>
<HEAD>
<TITLE>P&aacute;gina de pago</TITLE>
 <script src="sha256.js"></script>
</HEAD>
<BODY>
	<form action="https://tpv.ceca.es/tpvweb/tpv/compra.action" name="form2" ENCTYPE="application/x-www-form-urlencoded">
        	
        	<input name="MerchantID" type="hidden" value="082339089">
 			<input name="AcquirerBIN" type="hidden" value="0000994002">
 			<input name="TerminalID" type="hidden" value="00000003">
 			<input name="Num_operacion" type="hidden" value="132778">
 			<input name="Importe" type="hidden" value="800">
 			<input name="TipoMoneda" type="hidden" value="978">
 			<input name="Exponente" type="hidden" value="2">
 			<input name="URL_OK" type="hidden" value="http://www.ceca.es">
 			<input name="URL_NOK" type="hidden" value="http://www.ceca.es">
 			<input name="Firma" id="Firma" type="hidden" value="">
 			<input name="Cifrado" type="hidden" value="SHA2">
 			<input name="Idioma" type="hidden" value="1">
 			<input name="Pago_soportado" type="hidden" value="SSL">
 			<input name="SESION-CURSO" id="SESION-CURSO" type="hidden" value="G9FFZADI0823390890000994002000000031235009782SHA2http://www.ceca.eshttp://www.ceca.es">
 			

   <button title="Comprar" type="submit"  id="button-pay" onClick=" function () {
					document.getElementById('Firma').value = sha256(document.getElementById('SESION-CURSO').value);
				};">

</FORM>
</BODY>
</HTML>
  #2 (permalink)  
Antiguo 25/04/2019, 12:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Enviar y recibir valor función

¿Qué error te devuelve?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 25/04/2019, 16:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Enviar y recibir valor función

Hola:

No entiendo porqué esperas al envío del formulario para la conversión... pero lo que no veo es el método del formulario... que por defecto debería ser get, y supongo que tendría que ser post...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 26/04/2019, 01:36
 
Fecha de Ingreso: agosto-2003
Mensajes: 8
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Enviar y recibir valor función

Muy buenas,

abimaelrc, no me da ningún error, sólo que no llega el valor de la variable Firma.

caricatos, al copiar el código no se por qué no copié el método de envío.
Es post, tiene que ser post.
Sobre el por qué de la conversión al enviar, es que lo he intentado en el onLoad también y con el mismo resultado, pero bueno, me da igual dónde se realice.

Realemte esto se trata del final de una compra, llega a esta página la variable SESION-CURSO y hay que encriptarla en SHA-256 para enviarla en Firma a la pasarela de pago. El "cómo"
me daría igual mientras se genere.
Muchas gracias por responder!
  #5 (permalink)  
Antiguo 26/04/2019, 05:08
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Enviar y recibir valor función

El problema lo veo aquí:
Código:
<button title="Comprar" type="submit"  id="button-pay" onClick=" function () {
					document.getElementById('Firma').value = sha256(document.getElementById('SESION-CURSO').value);
				};">
Tienes varias cosas mal ahí:
1) En el atributo onclick declaras una función en lugar de invocarla, eso significa que nunca se ejecuta.
2) El tipo de botón es submit y nada garantiza que el submit se realice antes que el onclick (en algunos navegadores ocurre al revés).

Una forma de corregirlo sería:
Código:
<button title="Comprar" type="button"  id="button-pay" onClick="document.getElementById('Firma').value = sha256(document.getElementById('SESION-CURSO').value);this.form.submit();">Enviar</button>
Otra forma sería dejar el tipo del botón como submit y usar el método onsubmit del form para invocar una función que haga la connversión antes de enviar el form. Algo así:
Código:
<form ... onsubmit="document.getElementById('Firma').value = sha256(document.getElementById('SESION-CURSO').value);">
...
<button title="Comprar" type="submit"  id="button-pay">Enviar</button>
</form>

Última edición por Panino5001; 26/04/2019 a las 05:27
  #6 (permalink)  
Antiguo 26/04/2019, 08:43
 
Fecha de Ingreso: agosto-2003
Mensajes: 8
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Enviar y recibir valor función

Muchas gracias Panino5001
Voy a probarlo.
  #7 (permalink)  
Antiguo 29/04/2019, 05:09
 
Fecha de Ingreso: agosto-2003
Mensajes: 8
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Enviar y recibir valor función

Panino5001, efectivamente, me ha servido. Muchas gracias a todos!

Etiquetas: recibir, valor
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 22:49.