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

Hola a todos.

Mi pregunta es si alguno tiene experiencia con la implementación de pagos recurrentes/sucesivos con el TPV de servired.

Ya he logrado implementar el primer pago, pero con el cron que debería hacer los pagos sucesivos he tenido infinidad de problemas. Le he dado muchas vueltas al asunto y no he podido llegar a una solución.

El código de mi cron job es el siguiente:

Código PHP:
<?php
error_reporting
(E_ALL);
ini_set('display_errors',true);

//Funcion que hace el curl
        
function download_page($url,$fields,$fields_string){
                
$ch curl_init();
                
curl_setopt($chCURLOPT_URL$url);
                
curl_setopt($chCURLOPT_POSTcount($fields));
                
curl_setopt($chCURLOPT_POSTFIELDS$fields_string);
                
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

//Conexion a BD
$host 'localhost';
$user 'username';
$pass 'password;
$database = '
mydatabase';
$db = new PDO('
mysql:host=localhost;dbname=freshvana;charset=utf8', $user, $pass);
//Conexion a BD

$thedate = date('
Y-m-d');

foreach($db->query('
SELECT FROM freshcuotas WHERE Fecha_Cuota "'.$thedate.'" AND Customer_Id 23') as $row) {
        $cuotas_id = $row['
cuotas_id'];
        $Fecha_Cuota = $row['
Fecha_Cuota'];
        $Order_Id = $row['
Order_Id'];  
        $Customer_Id = $row['
Customer_Id']; 
        $Valor_Cuota = $row['
Valor_Cuota']*100;
        $Currency = $row['
Currency'];
        $Status = $row['
Status'];
        $Active = $row['
Active'];
        $Url = $row['
Url'];
        $Clave_Comercio = $row['
Clave_Comercio'];
        $Codigo_Comercio = $row['
Codigo_Comercio'];


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

        $xml="
<?xml version='
1.0' encoding=\"ISO-8859-1\" ?>
<DATOSENTRADA>
    <DS_VERSION>0.1</DS_VERSION>  
    <DS_MERCHANT_CURRENCY>978</DS_MERCHANT_CURRENCY>
    <DS_MERCHANT_MERCHANTURL>$Url<DS_MERCHANT_MERCHANTURL>
    <DS_MERCHANT_TRANSACTIONTYPE>6</DS_MERCHANT_TRANSACTIONTYPE>
    <DS_MERCHANT_MERCHANTDATA>Freshvana+Orden+No+$Order_Id</DS_MERCHANT_MERCHANTDATA>
    <DS_MERCHANT_AMOUNT>$Valor_Cuota</DS_MERCHANT_AMOUNT>
    <DS_MERCHANT_MERCHANTNAME>Freshvana</DS_MERCHANT_MERCHANTNAME>
    <DS_MERCHANT_MERCHANTSIGNATURE>$firma_comercio</DS_MERCHANT_MERCHANTSIGNATURE>
    <DS_MERCHANT_TERMINAL>1</DS_MERCHANT_TERMINAL>
    <DS_MERCHANT_MERCHANTCODE>$Codigo_Comercio</DS_MERCHANT_MERCHANTCODE>
    <DS_MERCHANT_ORDER>$Order_Id</DS_MERCHANT_ORDER>
</DATOSENTRADA>";

        $url = '
https://sis.sermepa.es/sis/operaciones';
        
$fields_string '';
        
$fields =array('entrada',$xml);
        foreach(
$fields as $key=>$value) { $fields_string .= $key.'='.urlencode($value).'&'; }
        
rtrim($fields_string'&');
        
$sXML download_page($url,$fields,$fields_string);

        
$oXML = new SimpleXMLElement($sXML);
        
//The service response code
        
echo '<hr>';
        echo 
'<xmp>';
        
print_r($sXML);

        echo 
'</xmp>';
        echo 
'<hr>';
        
print_r($oXML);
        echo 
'<hr>';

}
//end foreach
?>
Y sin importar que haga el resultado siempre es:

Código:
<?xml version='1.0' encoding="ISO-8859-1" ?><RETORNOXML><CODIGO>SIS0007</CODIGO><RECIBIDO>null</RECIBIDO></RETORNOXML>
Esto me dice que el xml de entrada no pudo ser leído.

He intentado con muchas formas y cambios en el xml pero no puedo hacer que funcione.

Cualquier ayuda, estaría muy agradecido.

La documentación mas reciente que he encontrado esta en:
http://drupal.org/files/GUIACOMERCIOSSISv5.19.pdf

Última edición por Necroside; 30/11/2012 a las 08:12 Razón: Añadir link a documentación.