Hi.

I am trying to implement a form to process payments in my online shop.

Everything seems to work fine but for an error in the "total" field.

I have tried diverse solutions with no result.

"Total" is "Importe" (It is in Spanish, sorry).

The coding in the form page:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Credit Card - Payment Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<meta content="MSHTML 6.00.6000.16481" name="GENERATOR"/>


<script type="text/javascript">
<!--
function aceptar(){
/*	var a,b,c;
	a = document.formulariotpv.Num_operacion.value;
	b = document.formulariotpv.Importe.value;



		c = "comercio.php?Num_operacion=";
		c = c + a + "&Importe=" + b;
//	alert(c);
	document.formulariotpv.redirect.value = c;

//	alert(document.formulario.redirect.value);
*/

	document.formulariotpv.submit();
}
function Aleatorio()
	{
    var numero = "" + Math.random();
	if(numero[1] == ".")
		{
		numero = numero.substring(1,numero.length);
		}
	numero = numero.replace (".", "");
	while(numero[0] == "0")
		{
		numero = numero.substring(1,numero.length);
		}
	return(numero)	
	}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
-->
</script>

</head>
<body>
<div id="contenido"> 

  <div id="cuatro">

    <div id="form">
      <form name="formulario" action="http://cgi.thewebsite.com/FormMail.pl" method="post">
        <input type="hidden" value="968" name="Importe"/> 
        <input type="hidden" name="redirect"/> 
        <input type="hidden" value="tienda@thewebsite.com" name="recipient"/> 
        <input type="hidden" value="Purchase Attempt" name="subject"/> 
      <h3>opcion<input type="radio" name="Service Option" value="Opcion" onclick="document.formulario.Importe.value=968;"/></h3>
  
        <div id="fzaq"><p>Processing Operation Code</p><input name="Num_operacion"/></div>
        <div id="controls">
          <div id="fza"><input onclick="Javascript:aceptar()" type="button" value="SUBMIT" name="Send"/></div>
          <div id="fzb"><input type="reset" class="Button" value="ERASE"/></div>
        </div>
      </form>
      <form name="formulariotpv" action="comercio.php" method=post target=_blank">
        <input type="hidden" name="Num_operacion"/> 
        <input type="hidden" name="Importe"/> 
      </form>
    </div>
  </div>
<script type="text/javascript">

var a = Aleatorio();
document.formulariotpv.Num_operacion.value = a;

</script>
</div>
</body>
</html>

I would appreciate some comment.
Thus, it contains the javascript that generates a random number for "Operation Number" ("Num_operacion") and a series of fields with the payment options for each product in the shop.

In this case, just one for the example.

<input type="radio" name="Service Option" value="Opcion" onclick="document.formulario.Importe.value=968;"/>

The value to process: 968 (9,68 euros).

This page gets and processes the data to comercio.php, which is exactly this:

Code:
<html> 
<head> 
<title>Example with  sha-1 firm</title> 

<script language=javascript>
function lanzar()
{
document.forms[0].submit();
}
</script>
</head> 
  <body> 
<br>
<br>

<font face="Verdana" size="3" color="#0f0084">
<center><b>
Operation in process. <br>
Sending data to bank.<br>


<br><br><br>
Please wait a moment...
</center>
<?php
//
$Num_operacion=$_POST["Num_operacion"];
$Importe=$_POST["Importe"];

//Shop information
$Clave = "xxxxxxxxxxxxxx";
$MerchantID = "xxxxxxxxxxxxxx";
$AcquirerBIN = "xxxxxxxxxxxxxx";
$TerminalID = "xxxxxxxxxxxxxx";
$Referencia = "";
$Tipomoneda = "978";
$Exponente = "2";
//
$URL_OK = "http://www.ceca.es";
$URL_NOK = "http://www.ceca.es";

$string = $Clave.$MerchantID.$AcquirerBIN.$TerminalID.$Num_operacion.$Importe.$Tipomoneda.$Exponente."SHA1".$URL_OK.$URL_NOK;
$resultado = sha1($string);
/*
echo 'CADENA '+$string;
echo '<br>';
echo 'FIRMA '+$resultado;
*/		
?>
<br> 
  <form action="https://pgw.ceca.es/cgi-bin/tpv" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">
    <input name="MerchantID" type=hidden value=<?php echo $MerchantID ?>>
    <input name="AcquirerBIN" type=hidden value=<?php echo $AcquirerBIN ?>>
    <input name="TerminalID" type=hidden value=<?php echo $TerminalID ?>>
    <input name="Num_operacion" type=hidden value=<?php echo $Num_operacion ?>>
    <input name="Importe" type=hidden value=<?php echo $Importe ?>>
    <input name="TipoMoneda" type=hidden value=<?php echo $Tipomoneda ?>>
    <input name="Exponente" type=hidden value=<?php echo $Exponente ?>>
    <input name="URL_OK" type=hidden value=<?php echo $URL_OK ?>>
    <input name="URL_NOK" type=hidden value=<?php echo $URL_NOK ?>>
    <input name="Firma" type=hidden value=<?php echo $resultado ?>>
    <input name="Idioma" type=hidden value=1>
    <input name="Pago_soportado" type=hidden value=SSL>
    <input name="Descripcion" type=hidden value="">
    <input name="Cifrado" type=hidden value="SHA1">
<script language=javascript>
lanzar();
</script>
  </form> 
  </body> 
</html>
This coding, as you see, send the data to https://pgw.ceca.es/cgi-bin/tpv to process the payment to the bank.

I have changed the data for security, but they are ok:

$Clave = "xxxxxxxxxxxxxx";
$MerchantID = "xxxxxxxxxxxxxx";
$AcquirerBIN = "xxxxxxxxxxxxxx";
$TerminalID = "xxxxxxxxxxxxxx";

For some reason, the first page does not process the value ("Importe").

Or perhaps comercio.php does not receive or process them properly.

I am not sure.

In any case, I am unable to get the total value ("Importe") processed:

(document.formulario.Importe.value)

Thanks very much for any comment on this.