REST Post PHP - mjungjohann/Ingefactura GitHub Wiki

Seguridad

Para poder comunicarse con el web service es necesario el uso de un token, el cual estará en la cabecera de la petición.El token lo debe solicitar a nuestro equipo de Ingefactura ([email protected]).

Enviar una request

Las peticiones son HTTPS Rest. El web service al ser de tipo Rest debe indicar el método que se utilizará. En nuestro caso se utilizara un metodo POST, para enviar un archivo y recibir la respuesta del web service.

<?php 
     //tipo de archivo que se va a enviar
     $tipo = "xml";
     //rut de la empresa
     $rut = "11111111-1";
     //url del web service 
     $url='https://develop.ingefactura.cl/wsRest/web/com/dte';
     //token de acceso (Se debe pedir a soporte de ingefactura)
     $token='xxxxxxxxxxxxxxxxxxxxxx';
     // se toma la ruta del archivo
     $file_name = realpath('ruta del archivo');
     $fichero = file_get_contents($file_name);     

     $ch = curl_init();

     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_POST, true);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_POSTFIELDS, $fichero);
     curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization:  Bearer ' . $token ,
                                                     'Content-Type: application/xml' ,
                                                            'rut: ' .$rut   ,
                                                                 'tipo:'.$tipo));       
     //se ejecuta y trae respuesta 
     $response = curl_exec($ch);
     //se cierra 
     curl_close($ch);

     //se toma la respuesta 
     $data = htmlentities($response);
     //se imprime 
     echo $data;

     ?>

Nota: Los archivos xml se deben enviar sin el header (xml version="1.0" encoding="ISO-8859-1") ya que el código php generara errores.