salve ho un problema di integrazione con le API di paypal, mi spiego meglio, questo è il checkout dello shop:
codice:
<?php 
include ("../includes/functions.php");
require_once ("../includes/paypalfunctions.php");	
include ("doc.php");
$dir="store"; 
$page="checkout.php"; 
function page_checkout($retcode)
{
  global $lang,$language;$amt;
  
    $sessionName = 'ord_pro';
    if ($retcode==1)
    {
      echo '<h2>'.ORDINE_INVIATO.'</h2>'; 
      $sessionName = 'ord_pro_sent';
    }
    
    $numero_prodotti = 0;
    if (isset($_SESSION[$sessionName]))
      $numero_prodotti = count($_SESSION[$sessionName]);
      
    if ($numero_prodotti>0 )
    { 
      if (!isMemberLogged()) 
  		  echo CHECK_TESTO;
         
  		if ($retcode!=1)
  		  echo CHECK_TESTO_OK;
    ?>
        
		 <table cellpadding="0" cellspacing="0" class="carrello">
		 <?php
		  $size = count($_SESSION[$sessionName]);
      $tot = 0;      
      for( $i = 0; $i < $size; $i++ )
      { 
        $sessionOrdPro = $_SESSION[$sessionName][$i];
        $sql = "select 
                p.id_pro,
                p.prezzo,
			    t.nome as taglia,
                pl.nome from 
                prodotto as p
                inner join prodotto_lang as pl using(id_pro)
                inner join lingue on pl.id_lin=lingue.id_lin
                left join taglia as t on t.id_tag = {$sessionOrdPro['id_tag']}
                where p.id_pro={$sessionOrdPro['id_pro']} and p.attivo like 'si' and lingue.sigla like '{$language}'              
                group by p.id_pro";                
        if ( $resP = mysql_query($sql) )
        {
          if( $rowP=mysql_fetch_array($resP,MYSQL_ASSOC) )
          {
            $tot+= $sessionOrdPro['quantita'] * floatval($sessionOrdPro['prezzo']);
		      ?>
					<tr>		
						<td width="20"><?php echo $sessionOrdPro['quantita']; ?></td>
						<td><?php echo $rowP['nome']; ?>-<?php echo $rowP['taglia']; ?></td>	
						<td width="110" class="destra"><nobr>&euro; <?php echo number_format($sessionOrdPro['prezzo'], 2, ',', '.'); ?></nobr></td>
                        
					</tr>
					 <?php
					     }
					     mysql_free_result($resP);
					   }
		       } 
		                
		       ?>
      			</table>
                <table cellpadding="0" cellspacing="0" class="calcoli">
                <tr>
                	
                    <td class="totali"><?php echo TOTALE_CON_IVA; ?></td>
                    <td class="totali" width="110"><nobr>&euro; <?php 
					$amt=$tot+10;
					echo number_format($tot+10, 2, ',', '.');?></nobr></td>
                </tr>
		        <?php 
		  		// leggo lo sconto sulla quantità
		        $scontoQ=0;
		        $cifraQ=0;
		        $sql = "select cifra,sconto from generali where id_gen=1";          
				if ( $resS = mysql_query($sql) )
		        {
		            if( $rowS=mysql_fetch_array($resS,MYSQL_ASSOC) )       
			        {
				        $cifraQ=$rowS['cifra'];
				        $scontoQ=$rowS['sconto'];
			        }
			        mysql_free_result($resS);
		        }
		        $totaleScontato=$tot;
		        if ($tot>=$cifraQ){
		        	$totaleScontato=$tot-$scontoQ;
		        ?>
		        <tr>
		        	
		        	<td class="destra">Sconto</td>
		            <td class="destra">&euro; <?php echo number_format($scontoQ, 2, ',', '.');?></td>
		            
		        </tr>
		        <tr>
		        	
		        	<td class="totali">Totale scontato:</td>
		            <td class="totali">&euro; <?php echo number_format($totaleScontato, 2, ',', '.');?></td>
		            
		        </tr>
		        <?php } ?>           
               
	   	</table>
	   	<div class="clearer"></div>
	
    </h2>
        

<form name="send_order" id="send_order" method="post" action="<?php echo $_SERVER['PHP_SELF'].'?'.$lang.'&st=1'; ?>" class="cmxform_pro">	
        
          <?php if (isMemberLogged() && $retcode!= 1 )  {?> 
          	<input type="hidden" name="sconto" value="<?php echo $tot>=$cifraQ?$scontoQ:0; ?>" />
          	<input type="hidden" name="totale" value="<?php echo $amt; ?>" />
         	<input checked type="radio" name="pagamento" value="CONTRASSEGNO" />Paga in contrassegno


         	<input type="radio" name="pagamento" value="PAYPAL" />Paga con PayPal-Carta di credito o postpay



        	<input type="submit" value="Inoltra ordine" class="buy_button" />
        	<?php }?> 
        </form></p>
	 <?php
   }
   else 
   {   
   ?>				
		<h2><?php echo CART_VUOTO; ?></h2>
        <div class="pul_catalogo"><?php echo TORNA_ALLO_SHOPPING; ?></div>
        

</p>
    

</p>
    <div class="clearer"></div>
   <?php
   }     
   
   
   if ($retcode==1)
    unset($_SESSION['ord_pro_sent']);
}
function sendOrder()
{    
  global $numero_prodotti;
  
  $retcode = 2; /*KO*/
  
  if ($numero_prodotti>0)
  {
    $date = date("Y-m-d");
    $time = date("H:i:s");
    $id_isc = getMemberId();
    
    list($username,$pass)  = explode(COOKIE_SEPARATOR_D,$_COOKIE[COOKIE_AUTHORIZER_SHAK]);  
    $email_isc = mysql_real_escape_string($username);
    
    $peso = 0;
    $iva = 21;
    $pagato = '0000-00-00';
    $preparazione = 0;
    $pronto = 0;
    $spedito = '0000-00-00';
        
    $sql = "insert into ordine (data,     ora,      id_isc,    peso,    iva,   pagato,    preparazione,pronto,spedito) 
                        values ('{$date}','{$time}',{$id_isc}, {$peso}, {$iva}, '{$pagato}', {$preparazione}, {$pronto},'{$spedito}');";
                        
    if ( $ret = mysql_query($sql) )  
    {
      if ( mysql_affected_rows() > 0 )
      {
        $retcode = 1; /*ok*/
        $id_ord = mysql_insert_id();
        
        // inserisco i prodotti relativi a questo ordine
        $size = count($_SESSION['ord_pro']);      
        for( $i = 0; $i < $size; $i++ )
        { 
          $sOrdPro = $_SESSION['ord_pro'][$i];
          $sql = "insert into ord_pro (id_ord,
          							   id_pro,
          							   id_tag,
          							   id_var,
          							   quantita,
          							   nome,
          							   codice,
          							   prezzo)
                               values ({$id_ord},
          							   {$sOrdPro['id_pro']},
          							   {$sOrdPro['id_tag']},
          							   {$sOrdPro['id_var']},
          							   {$sOrdPro['quantita']},
          							   '{$sOrdPro['nome']}',
          							   '{$sOrdPro['codice']}',
          							   {$sOrdPro['prezzo']});";
									   
			
									   
									   
          $retOrdPro = mysql_query($sql);
		  
		  
		  
		  
		 				                $idordine = $sOrdPro['id_ord'];
										$codice = $sOrdPro['codice'];
										$prezzo = $sOrdPro[$i]['prezzo'];
										$spedizione= 10;
									    $tipospedizione= "contrassegno";		   
									
		  
		  
		  
        }
        // lo salvo in una sessione temporanea solo per mostrarlo come riepilogo
        $_SESSION['ord_pro_sent'] = $_SESSION['ord_pro'];
			                            
		
       
        
        
        // spedizione email di conferma
        $text =  sprintf(CONFERMAORDINETEXT, $date.' '.$time ,$idordine,$codice,$prezzo,$spedizione,$tipospedizione );
					
        mail("{$email_isc}", CONFERMAORDINE, $text,
                      "From: ".SITE_EMAIL2."\r\n" .
                      "Reply-To: ".SITE_EMAIL2."\r\n" .
                      "X-Mailer: PHP/" . phpversion());
                      
        mail(SITE_EMAIL, CONFERMAORDINE, $text,
		
                      "From: ".SITE_EMAIL2."\r\n" .
                      "Reply-To: ".SITE_EMAIL2."\r\n" .
                      "X-Mailer: PHP/" . phpversion());
                                    
									
		unset ($_SESSION['ord_pro']);
        $numero_prodotti = getCartProdNumber();   
      }
    }       
  }
  return $retcode;     
}
function expresscheckout()
{	
	global $lang;
	if (isMemberLogged())
	{	
		// dati per la callback paypal
	
		$currencyCodeType = "EUR"; //valuta
		$paymentType = "Sale"; //tipo di operazione: vendita
		$returnURL = "http://www.miosito.it/store/confermapagamento.php"; //alla fine torna qui se tutto ok...
		$cancelURL = "http://www.miosito.it/store/checkout.php?".$lang;  //...altrimenti torna qui		
		$resArray = CallShortcutExpressCheckout ($_POST['totale'], $currencyCodeType, $paymentType, $returnURL, $cancelURL,$_SESSION['ord_pro'],$_POST['sconto']);
		$ack = strtoupper($resArray["ACK"]);
		
		if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING")
		{
			//ok
			RedirectToPayPal ( $resArray["TOKEN"] );
		}
		else
		{
			//errore
			
			$ErrorCode = urldecode($resArray["L_ERRORCODE0"]);
			$ErrorShortMsg = urldecode($resArray["L_SHORTMESSAGE0"]);
			$ErrorLongMsg = urldecode($resArray["L_LONGMESSAGE0"]);
			$ErrorSeverityCode = urldecode($resArray["L_SEVERITYCODE0"]);
			
			echo "SetExpressCheckout API call failed. ";
			echo "Msg Errore: " . $ErrorLongMsg;
			echo "Short Error Message: " . $ErrorShortMsg;
			echo "Codice Errore: " . $ErrorCode;
			echo "Error Severity Code: " . $ErrorSeverityCode;
			
		}
	}
}
$status = 0;
if (!empty($_GET['st']))
  $status = intval($_GET['st']); 
$retcode = 0;
  
switch ($status) 
{
  case 1: 
  {
  	if ($_POST['pagamento']=='CONTRASSEGNO')
    	$retcode = sendOrder();   
    else if ($_POST['pagamento']=='PAYPAL')
    	expresscheckout();	
    	
    $status = 0;
    break;
  }
}   
?>
<title><?php echo CHECK_OUT; ?></title>
<meta name="Keywords" content="<?php echo CHECK_OUT; ?>" />
<meta name="Description" content="<?php echo CHECK_OUT; ?>" />
<link href="/resources/css/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
  	<?php include ("top.php"); ?>
  	
  
  

  <div id="white_box">
  	<div id="main">
    <h1><?php echo RIEPILOGO_ORDINE;  ?></h1>	
    
 		<?php
        
      switch ($status) 
      {              
        case 0: /*page login*/
        {
          page_checkout($retcode);                   
          break;
        }
      }                        
      ?>           
	
			
  <div class="clearer"></div>
  </div>
  <div class="space"></div>
    <?php include ("catalog_pro.php"); ?>
    <div class="clearer"></div>	
  </div>
  
  
  
  <?php include ("footer.php"); ?>
  
</body>
</html>




quando decido di pagare con paypal mi da errore e mi dice che il totale del carrello non è uguale a quello che la funzione si aspetti e non capisco perché!


grazie anticipatamente