Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/12/2012, 12:32
Necroside
 
Fecha de Ingreso: junio-2008
Ubicación: Armenia- Colombia || El tigre - Venezuela
Mensajes: 34
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Pago sucesivo TPV servired?

Al parecer el xml se tiene que pasar como esta, sin hacerle ninguna conversión.

Este código es el que me funciona. Lleva una semana en pruebas y puede no ser el mejor código, pero cumple su objetivo.

Código PHP:
<?php

//Funcion que hace el curl
        
function download_page($url,$xml){

                
$url 'https://sis.sermepa.es/sis/operaciones';
                
$ch curl_init();
                
curl_setopt($chCURLOPT_URL$url);
                
curl_setopt($chCURLOPT_POST1);
                
curl_setopt($chCURLOPT_POSTFIELDS"entrada=$xml");
                
curl_setopt($chCURLOPT_FAILONERROR,1);
                
curl_setopt($chCURLOPT_FOLLOWLOCATION,1);
                
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
                
curl_setopt($chCURLOPT_TIMEOUT15);
                
$result curl_exec($ch);
                
curl_close($ch); 
                return 
$result;
        }
//End funcion que hace el curl

//...

$firma_comercio sha1($Valor_Cuota.$Order_Id.$Codigo_Comercio.'978'.'6'.$Clave_Comercio);

        
$xml "<DATOSENTRADA>";
        
$xml .= "<DS_VERSION>0.1</DS_VERSION>";
        
$xml .= "<DS_MERCHANT_CURRENCY>978</DS_MERCHANT_CURRENCY>";
        
$xml .= "<DS_MERCHANT_MERCHANTURL>$Url</DS_MERCHANT_MERCHANTURL>";
        
$xml .= "<DS_MERCHANT_TRANSACTIONTYPE>6</DS_MERCHANT_TRANSACTIONTYPE>";
        
$xml .= "<DS_MERCHANT_MERCHANTDATA>Freshvana+Orden+No+$Order_Id</DS_MERCHANT_MERCHANTDATA>";
        
$xml .= "<DS_MERCHANT_AMOUNT>$Valor_Cuota</DS_MERCHANT_AMOUNT>";
        
$xml .= "<DS_MERCHANT_MERCHANTNAME>Freshvana</DS_MERCHANT_MERCHANTNAME>";
        
$xml .= "<DS_MERCHANT_MERCHANTSIGNATURE>$firma_comercio</DS_MERCHANT_MERCHANTSIGNATURE>";
        
$xml .= "<DS_MERCHANT_TERMINAL>1</DS_MERCHANT_TERMINAL>";
        
$xml .= "<DS_MERCHANT_MERCHANTCODE>$Codigo_Comercio</DS_MERCHANT_MERCHANTCODE>";
        
$xml .= "<DS_MERCHANT_ORDER>$Order_Id</DS_MERCHANT_ORDER>";
        
$xml .= "</DATOSENTRADA>";

        
        
$the_string .= "Fecha: ".$thedate."\n";
        
$the_string .= "Hora: ".date('H:i:s')."\n";
        
$the_string .= 'THE XML'."\n";
        
$the_string .= $xml."\n";

        
$url 'https://sis.sermepa.es/sis/operaciones';

        
$sXML download_page($url,$xml);
        
        
$oXML = new SimpleXMLElement($sXML);
        
//The service response code
        
echo '<br><xmp>'.$sXML.'</xmp>';
        
$arryaOxml get_object_vars($oXML);
        
$codigo =  $arryaOxml['CODIGO'];
        
$arrayOperacion get_object_vars($oXML->OPERACION);
        if(isset(
$arrayOperacion['Ds_Response']))
                
$respuesta =  $arrayOperacion['Ds_Response'];
        
        if(isset(
$arrayOperacion['Ds_Response']) && (int)$codigo == && (int)$respuesta == ){
                
$string_to_save 'Operacion exitosa.';
                
$status 1;
        }elseif(isset(
$arrayOperacion['Ds_Response']) && (int)$respuesta == 190){
                
$string_to_save 'Operacion denegada por el banco.';
                
$status 0;
        }else{
                
$string_to_save 'Error en la operacion: '.$codigo;  
                
$status 0;
        }
        


?>