Percepcion IIBB

35 views
Skip to first unread message

edwinb...@gmail.com

unread,
Aug 24, 2019, 10:40:57 AM8/24/19
to Afip.php - SDK para los Web Services de Afip en PHP
Hola:

Tengo un cliente que es Responsable Inscripto y agente de percepcion de IIBB. Adjunto un script en php que permite consultar on-line en ARBA las alicuotas de percepcion y/o
retencion para una CUIT y un periodo especificos.

La idea es utilizar este script para consultar la alicuota en el momento de emitir la Factura electronica.

El script en cuestion en wamp 5.2 funciona perfectamente. Pero en un debian con php 5 o 7 no funciona. Devuelve "Error inesperado".Tampoco funciona con xamp y php 7

La informacion respecto de este error en las paginas de Arba no dice nada util.

Tal vez alguno de Uds. pueda tirarme alguna idea ?

Gracias
Edwin

<?php

class CurlFileUploader {
   
var $filePath;
   
var $uploadURL;
   
var $formFileVariableName;
   
var $postParams = array();

   
function CurlFileUploader ($filePath, $uploadURL, $formFileVariableName, /* assosiative array */ $otherParams = false) {
        $this
->filePath = $filePath;
        $this
->uploadURL = $uploadURL;
       
if (is_array($otherParams) && $otherParams != false)
           
foreach ($otherParams as $fieldName => $fieldValue)
                $this
->postParams[$fieldName] = $fieldValue;
        $this
->postParams[$formFileVariableName] = "@" . $filePath;
   
}

   
function UploadFile () {
        $ch
= curl_init();
        curl_setopt
($ch, CURLOPT_URL, $this->uploadURL);
        curl_setopt
($ch, CURLOPT_POST, 1);
        curl_setopt
($ch, CURLOPT_POSTFIELDS, $this->postParams);
        curl_setopt
($ch, CURLOPT_RETURNTRANSFER, 1);
        $postResult
= curl_exec($ch);

       
if (curl_errno($ch)) {
           
print curl_error($ch);
           
// print "<br>Unable to upload file.";
           
exit();
       
}
       
else {
            curl_close
($ch);
           
return $postResult;
       
}
   
}
}

/* ubicar el path donde se genera el archivo */
if (strtoupper(PHP_OS) == 'LINUX')
    define
('RAIZ', './');
else
    define
('RAIZ', 'C:/wamp/www/sistemas/arba/log/');

define
('LOG', RAIZ);
define
('URL_ARBA','http://dfe.arba.gov.ar/DomicilioElectronico/SeguridadCliente/dfeServicioConsulta.do');
define
('USER','30663453854');
define
('PASSWORD', '663453');

$cuit
= $_GET['cuit'];

$fechaDesde
= date('Ymd',mktime(0,0,0,date('m'),1,date('Y')));
$fechaHasta
= date('Ymd',mktime(0,0,0,((int)date('m')) + 1,0,date('Y')));

$xml
= sprintf('<?xml version = "1.0" encoding = "ISO-8859-1"?>
<CONSULTA-ALICUOTA>
<fechaDesde>%s</fechaDesde>
<fechaHasta>%s</fechaHasta>
<cantidadContribuyentes>1</cantidadContribuyentes>
<contribuyentes class="list">
<contribuyente>
<cuitContribuyente>%s</cuitContribuyente>
</contribuyente>
</contribuyentes>
</CONSULTA-ALICUOTA>', $fechaDesde, $fechaHasta, $cuit);

$clave = md5($xml);
$archivo = LOG . 'DFEServicioConsulta_' . $clave . '.xml';

if(file_exists($archivo) )
    unlink($archivo);
file_put_contents($archivo,$xml);

$objCurlFileUploader = new CurlFileUploader($archivo, URL_ARBA, "file", Array(user => USER, password => PASSWORD));

$respuesta = $objCurlFileUploader->UploadFile();

$arr = json_decode(json_encode((array)simplexml_load_string($respuesta)), 1);

if (isset($arr['tipoError']))
    echo 'SE PRODUJO UN ERROR';
else
    print_r($arr);
unlink($archivo);

?>


Reply all
Reply to author
Forward
0 new messages