Código Fuente PHP de WebService para timbrado de facturación Electrónica
Les comparto el código para timbrar un XML y convertirlo en CFDi
<?php
include "lib/nusoap.php";
$xml='mi xml';
$usuario='MIRFC';
$clave='mi clave';
$produccion='NO'; // [NO|SI]
$pac=rand(1,10);//toma un servidor al azar
$soapclient = new nusoap_client("http://pac$pac.multifacturas.com/pac/?wsdl",$esWSDL = true);
//Generamos el arreglo con los parametros para timbrado
$tim = array('rfc' => $usuario, 'clave' => $clave,'xml' => $xml,'produccion' => $produccion);
$respuesta_timbrado = $soapclient->call('timbrar', $tim);
print_r($respuesta_timbrado);
?>
$respuesta_timbrado es un array con toda la información
Elementos de la respuesta
Referentes al timbradocfdi = string XML ya timbrado
png = string en base 64 perteneciente al PNG del QR
Codigos de error y estado
produccion = string SI o NO
codigo_mf_numero = Codigo numero representando el error o acierto, ver tabla de abajo
codigo_mf_texto= string mensaje descriptivo del codigo numerico
cancelada = string SI o NO, en caso de cualquier error este sera SI
saldo = numero entero indicando el credito restante
Información adicional de apoyo o seguimiento
idpac = numero entero interno de multifacturas para identificar el PAC donde se timbro
pac = numero entero de autorizacion del pac ante hacienda
mensaje_original_pac_json = sting json que regresa el mensaje original que hubo hacia el PAC
uuid = numero uuid del xml timbrado
servidor = en que servidor fue timbrado
Códigos de estado y/o error
0 = OK
1 = SALDO INSUFICIENTE MULTIFACTURAS
2 = RFC, XML o SELLO INVALIDO
3 = TIMEOUT AL PAC
4 = USUARIO O CONTRASEÑA INCORRECTOS EN EL PAC
5 = USUARIO O CONTRASEÑA INCORRECTOS EN MULTIFACTURAS
>=6 ERRORES CON SU DESCRIPCION ADJUNTA
Usuario y contraseña de pruebas es DEMO700101XXX, utilizando los certificados publicados aquí
espero les sirva
buen día, ando probando su código y me manda este resultado;
ResponderEliminarArray ([CFDI] =>
[png] =>
[IDPAC] => 1
[pac] => 55503
[produccion] => NO
[codigo_mf_numero] => 2
[codigo_mf_texto] => RFC ERROR, DATOS VACIOS, SELLO XML O Invalido [mensaje_original_pac_json] => {"retorno": {"status": "300 - Usuario no existe"}} [cancelada] => NO
[saldo] => 19 [Servidor] => 7
[ejecucion] => 227.219)
podría orientarme cual puede ser mi error
Posibles causas
ResponderEliminar1- Fecha muy antigua
2- RFC del receptor invalido, prueba con uno real
3- campos vacios o faltan obligatorios
4- XML o sello mal formado, aquí puedes validar su estructura https://www.consulta.sat.gob.mx/sicofi_web/moduloECFD_plus/ValidadorCFDI/Validador%20cfdi.html
te dejo las cuentas de skype para soporte : mashteratencion y mashter.com
estamos en contacto
a mi me sale esto
ResponderEliminarArray
(
[cfdi] =>
[png] =>
[idpac] => 1
[pac] => 55503
[produccion] => NO
[codigo_mf_numero] => 0
[codigo_mf_texto] => OK : PRUEBA EXITOSA NO VALIDA ANTE SAT
[mensaje_original_pac_json] => {"return":{"status":"Content is not allowed in prolog."}}
[cancelada] => NO
[saldo] => 999999995
[servidor] => 1
[ejecucion] => 167.087
)