CLASE de Conexión y Generación de Factura de la SET/SIFEN Paraguay
Aquí iremos actualizando todo lo que se pueda sobre el sistema de facturación de la SIFEN y esta nueva CLASE con todo lo necesario.
Hasta el momento se puede ver el código y cualquier mejora que se necesite bienvenido sea las sugerencias. De momento hago una pequeña descripción de la clase
Se debe crear una carpeta llaves dentro de la cual se deberá meter las llaves necesarias para el funcionamiento de la de la clase
- Se incluye la librería sifen.php
- Se crear un objeto de la clase
- Se Genera un archivo xml enviado los datos necesarios en formato JSON al objeto con la función generar_xml()
- Se devuelve un array con el indice 0 con el archivo XML generado y firmado y en el indice 1 el Id del documento
- Se procede a enviar el documento generado anteriormente colocando el número de Id devuelto en el array
- Se guarda de manera automática lo devuelto por los servidores de la SIFEN dentro de la carpeta de/ donde se encuentra la clase
- En el archivo ini.php o en su servidor habilitar openssl para todo lo referente a la firma
- Para la utilización de aravo.php se debe habilitar socket
No estamos más desarrollando esta librería de momento.
El archivo sifen.php ya es una clase en si misma. Se lo puede incluir directamente en su proyecto y hacer llamada directa
include 'sifen.php'; //Incluimos la librería
$xml = new sifen(); //Creamos un objeto de la clase sifen
$arreglo = $xml->generar_xml($json, "contraseña", "llave_privada.key", "certificado.cer"); //Llamamos a la función generar_xml enviando los parametros a ser usados
$xml->enviar_xml($arreglo[1],'llave_privada_abierta.key','certificado.cer'); //Llamamos a la función para enviar el archivo a la SIFEN
- Cargar todo el contenido del JSON en una variable y enviarlo, en el ejemplo la variable $json contiene todo lo siguiente
{"DE":[
{
"dSisFact":1,
"iTipEmi":1,
"dDesTipEmi":"Normal",
"dInfoEmi":1,
"iTiDE":1,
"dDesTiDE":"Factura electrónica",
"dNumTim":12560693,
"dEst":"001",
"dPunExp":"001",
"dNumDoc":"0000004",
"dFeIniT":"2022-11-21",
"dFeEmiDE":"2023-10-01T00:00:00",
"iTipTra":1,
"dDesTipTra":"Venta de mercadería",
"iTImp":1,
"dDesTImp":"IVA",
"cMoneOpe":"PYG",
"dDesMoneOpe":"Guarani",
"dRucEm":80130124,
"dDVEmi":6,
"iTipCont":2,
"dNomEmi":"TracertSystem",
"dDirEmi":"Salustiano Merardo Moreno esq. jhon Whitehead",
"dNumCas":1907,
"cDepEmi":1,
"dDesDepEmi":"CAPITAL",
"cDisEmi":1,
"dDesDisEmi":"ASUNCION (DISTRITO)",
"cCiuEmi":1,
"dDesCiuEmi":"ASUNCION (DISTRITO)",
"dTelEmi":9815782222,
"dEmailE":"[email protected]",
"cActEco":620,
"dDesActEco":"ACTIVIDADES DE PROGRAMACIÓN Y CONSULTORÍA INFORMÁTICAS Y OTRAS ACTIVIDADES CONEXAS",
"iNatRec":1,
"iTiOpe":2,
"cPaisRec":"PRY",
"dDesPaisRe":"Paraguay",
"iTiContRec":1,
"dRucRec":2278132,
"dDVRec":3,
"dNomRec":"Paulo Villamayor",
"iIndPres":1,
"dDesIndPres":"Operación presencial",
"iCondOpe":1,
"dDCondOpe":"Contado",
"iTiPago":3,
"dDesTiPag":"Tarjeta de crédito",
"dMonTiPag":600.00,
"cMoneTiPag":"PYG",
"dDMoneTiPag":"Guarani",
"iDenTarj":99,
"dDesDenTarj":"Infonet - Debito",
"iForProPa":2
}
],
"items":[
{
"dCodInt":41,
"dDesProSer":"BOLSA",
"dCantProSer":1,
"dPUniProSer":200,
"dTasaIVA":10
},
{
"dCodInt":52,
"dDesProSer":"Remera Blanca Mediano",
"dCantProSer":1,
"dPUniProSer":15800,
"dTasaIVA":10
},
{
"dCodInt":63,
"dDesProSer":"Zapato XL",
"dCantProSer":1,
"dPUniProSer":185000,
"dTasaIVA":10
}
]
}