PHP code example of sifei / timbrado-soap-client

1. Go to this page and download the library: Download sifei/timbrado-soap-client library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

sifei / timbrado-soap-client example snippets



# tamos las clases
use DHF\Sifei\Ws\Soap\Timbrado\getCFDI;
use DHF\Sifei\Ws\Soap\SifeiTimbradoService;

$sifeiService =new SifeiTimbradoService(
    SifeiTimbradoService::DEV_ENV,
    ['trace'=>true]    #Para recuperar el request y response
);
#clase con los parametros de timbrado:
$timbradoParams= new getCFDI();
$timbradoParams->setUsuario($usuario);
$timbradoParams->setPassword($password);
$timbradoParams->setIdEquipo($idEquipo);
$timbradoParams->setSerie($serie);
$timbradoParams->setArchivoXMLZip($xml);#arhivo xml

try {
	$res = $sifeiService->getCFDI($timbradoParams);
	$fileTmpZip = "timbrado.zip";  //nombre del zip
	//mandamos en un zip el xml timbrado en caso de exito
	file_put_contents( $fileTmpZip, $res->getReturn());
	$zipXml = new ZipArchive();
	if ($zipXml->open($fileTmpZip) === TRUE) {	  		
  		$zipXml->extractTo( $tmpDirName );
		$zipXml->close();
	}
} catch (SoapFault $e) {
	#En caso de un error inspeccionar la excepcion:
	var_dump( $e->faultcode, $e->faultstring, $e->detail)
}


use DHF\Sifei\Ws\Soap\utils\CFDIUtils;
/**
 * Ejemplo para la generacion de sello. 
 * 
 * Contexto. El sello es la cadena original firmada mediante la llave (.key) y un password. 
 * La cadena original es una cadena de texto que comprende todos los CFDI
 * 
 * Nota: Si ocurre un error favor de confirmar que la llave (PEM O DER) efectivamente sean una llave y no el certificado, puedes hacerlo segun el caso
 * Para obtener info de un certificado(notar la extension):
 *  >openssl x509 -in CSD01_AAA010101AAA.cer -inform der -text
 * 
 * 
 * 
 * 
 * Flujo : 
 * 
 * CFDI-> procesamiento de cadenaoriginal->cadena original producida-> firmado/sellado-> sello generado->anexar sello al atributo sello del nodo Comprobante->Enviar a timbrar->Recuperar CFDI timbrado
 * 
 * 
 * ----------------------------------------------------------------------------------------------------------------
 * En caso de no poder generar el sello con el .key, convertir el KEY a FORMATO PEM con openssl:
 * >openssl pkcs8 -inform DER -in CSD01_AAA010101AAA.key  -passin pass:12345678a -out CSD01_AAA010101AAA_KEY.PEM
 * donde:
 *      Entrada) CSD01_AAA010101AAA.key Llave en formato DER
 *      Salida)  CSD01_AAA010101AAA_KEY.PEM  Llave en formato PEM
 */
//clase ejeemplo de genracion de cadena originaly sellado