Buscador

Loading

viernes, 10 de enero de 2014

Ejemplo PHP WebService para timbrar un XML

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 timbrado
cfdi = 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




3 comentarios:

  1. buen día, ando probando su código y me manda este resultado;


    Array ([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

    ResponderEliminar
  2. Posibles causas

    1- 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

    ResponderEliminar
  3. a mi me sale esto

    Array
    (
    [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
    )

    ResponderEliminar

Como crear una factura electronica con C#

Creando una factura electrónica en C# Existen varios métodos Método 1 - Web Service Primero generás un archivo XML el cual tiene toda ...