Advertisement
Guest User

Timbrado CFDI 3.2 FacturaDigital

a guest
May 29th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.50 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Desarrollado por Novatech Digital SA de CV - www.facturadigital.com.mx
  4.  * soporte@facturadigital.com.mx
  5.  * Descripción: Clase helper para realizar el timbrado
  6.  * de facturas electrónicas CFDI en la versión 3.2 utilizando como input
  7.  * plantillas de texto en formato UTF-8 que están disponibles por solicitud
  8.  * a través del correo soporte@facturadigital.com.mx
  9.  * VERSIÓN DE LA LIBRERÍA: 1.0
  10.  *
  11.  * REQUISITOS: PHP >= 5, OpenSSL, NUSOAP
  12.  *
  13.  * Referencias de descarga librerias externas:
  14.  * NUSOAP: http://sourceforge.net/projects/nusoap/
  15.  */
  16. require_once ("nusoap/nusoap.php");
  17.  
  18. class TimbradoFacturaDigital {
  19.    
  20.     public $urlFacturaDigital = 'https://www.facturadigital.com.mx/sistemacfdi32/webservices/TimbradoWS.php?wsdl';
  21.    
  22.     /**
  23.      * Genera y timbra un archivo XML, y devuelve un arreglo conteniendo la información necesaria para proveer la factura timbrada al cliente
  24.      * @param string $usuario nombre de usuario username
  25.      * @param string $password password de la cuenta
  26.      * @param string $layout texto que contiene los datos del comprobante a generar, basado en la plantilla.
  27.      * @return boolean si el timbrado es correcto
  28.      */
  29.     public function generarCFDI($usuario, $password, $layout) {
  30.         try {
  31.    
  32.             $client = new SoapClient( $this->urlFacturaDigital, array (
  33.                                         'cache_wsdl' => WSDL_CACHE_NONE,
  34.                                         'trace' => TRUE
  35.                                     ));
  36.            
  37.             $cfdi = $client->generarCFDIPorTexto ( $usuario, $password, $layout );
  38.    
  39.             return $cfdi;
  40.         } catch ( Exception $e ) {
  41.             throw new Exception ( $e->getMessage(), $e->getCode() );
  42.             return false;
  43.         }
  44.     }
  45.    
  46.  
  47.     /**
  48.      * Llama al método de cancelacion de folios UUID – La cancelación se realiza directamente en el servidor del SAT
  49.      * @param string $usuario
  50.      * @param string $password
  51.      * @param string $uuid es el folio fiscal UUID del CFDI proporcionado por el SAT
  52.      * @return boolean si la cancelación es correcta
  53.      */
  54.     public function cancelarCFDI($usuario, $password, $uuid) {
  55.         try {
  56.    
  57.             $client = new SoapClient( $this->urlFacturaDigital, array (
  58.                                         'cache_wsdl' => WSDL_CACHE_NONE,
  59.                                         'trace' => TRUE
  60.                                     ));
  61.    
  62.             $cancelacion = $client->cancelarCFDI( $usuario, $password, $uuid );
  63.            
  64.             return $cancelacion;
  65.         } catch ( Exception $e ) {
  66.             throw new Exception ( $e->getMessage(), $e->getCode() );
  67.             return false;
  68.         }
  69.     }
  70.    
  71.     /**
  72.      * Consulta la cantidad de créditos (timbres) disponibles para el usuario y contraseña proporcionados.
  73.      * @param string $usuario
  74.      * @param string $password
  75.      * @return array $ws que contiene la cantidad de timbres disponibles.
  76.      */
  77.     public function consultarCreditos($usuario, $password) {
  78.         try {
  79.             $client = new SoapClient ( $this->urlFacturaDigital, array (
  80.                 'cache_wsdl' => WSDL_CACHE_NONE,
  81.                 'trace' => TRUE
  82.             ) );
  83.    
  84.             $ws = $client->consultarCreditos( $usuario, $password );
  85.             return $ws;
  86.         } catch ( Exception $e ) {
  87.             throw new Exception ( $e->getMessage(), $e->getCode() );
  88.             return false;
  89.         }
  90.     }
  91.  
  92.  
  93.    
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement