#Ejemplo de timbrado en php para consumir webservice
En PHP tenemos la clase ClienteFormasDigitales que nos ayuda en el proceso de timbrar el cfdi.
La clase la inicializamos pasandole de parametro el path del xml que vamos a timbrar
$clienteFD = new ClienteFormasDigitales($xmlPath);
Tambie tenemos el metodo sellarXML al que le pasamos de parametros el path del certificado y el path de la llave privada para generar el sello, obtener el numero de certificado y el certificado en base64.
$clienteFD->sellarXML($certFile, $keyFile);
Este metodo nos devuelve el xml en string para posteriormente enviarlo al servicio web para timbrar el cfdi.
$autentica = new Autenticar();
$autentica->usuario = "pruebasWS";
$autentica->password = "pruebasWS";
$parametros = new Parametros();
$parametros->accesos = $autentica;
$parametros->comprobante = $clienteFD->sellarXML($certFile, $keyFile);
/* se manda el xml a timbrar */
$responseTimbre = $clienteFD->timbrar($parametros);
Depende si todo salio bien el $responseTimbre tendra una variable que se llama xmlTimbrado y si algo salio mal regresara una variable que se llama error donde viene descrito por que no timbro el xml
/* solo informativo... muestra el codigo de error en caso de existir y resultados */
if(isset($responseTimbre->acuseCFDI->error)){
echo "codigoErr: " . $responseTimbre->acuseCFDI->error. "<br>";
}
if($responseTimbre->acuseCFDI->xmlTimbrado){
echo 'XML TMIBRADO:<BR> <textarea>' . $responseTimbre->acuseCFDI->xmlTimbrado . '</textarea>';
}