Herramientas de usuario

Herramientas del sitio


manuales:nagios:capacitacion:productos:argentina_-_afip_-_factura_electronica

¡Esta es una revisión vieja del documento!


Argentina AFIP Factura Electrónica

Factura Electrónica, es un documento comercial en formato electrónico que reemplaza al documento físico tradicional en papel.

El C.A.E. es el Código de Autorización Electrónico, que otorga la AFIP a cada documento para darle validez.

Un documento con C.A.E. indica que fue autorizado por la AFIP.

check_xml_url.sh

Esto lo necesite cuando tuve que XML de diferentes Webservices tengan la sintaxis correcta, para asi saber si habia una falla en los mismos.

check_xml_url.sh
#!/bin/bash
wget -q -O - --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" $1 | xmlstarlet val - 1>/dev/null 2>/dev/null
EXIT_STATUS=$?
 
if [[ $EXIT_STATUS -eq "0" ]]; then
    echo "OK - La sintaxtis es correcta : $EXIT_STATUS"
fi
 
if [[ $EXIT_STATUS -ne "0" ]]; then
    echo "CRITICAL - La sintaxtis no es correcta : $EXIT_STATUS"
fi

Ejemplo de configuración :

	check_command                  	check_xml_url!https://wsaa.afip.gov.ar/ws/services/LoginCms?wsdl
	check_command                  	check_xml_url!https://serviciosjava.afip.gob.ar/wsmtxca/services/MTXCAService?wsdl
check_xml_afip.php

En Argentina tenemos un servicio de Factura Electronica, si queremos verificar su status, deberemos consumir este WebService https://serviciosjava.afip.gob.ar/wsmtxca/services/MTXCAService/dummy , del cual obtendremos esta respuesta que debemos parsear :

<?xml version="1.0" encoding="UTF-8"?>
<ns1:dummyResponse xmlns:ns1="http://impl.service.wsmtxca.afip.gov.ar/service/">
   <appserver>OK</appserver>
   <authserver>OK</authserver>
   <dbserver>OK</dbserver>
</ns1:dummyResponse>
check_xml_afip.php
#!/usr/bin/php
<?php
/*
SimpleXMLElement Object
(
    [appserver] => OK
    [authserver] => OK
    [dbserver] => OK
)
*/
$xml_cae_dummy = simplexml_load_file('https://serviciosjava.afip.gob.ar/wsmtxca/services/MTXCAService/dummy');
 
$appserver_status	= $xml_cae_dummy->appserver;
$authserver_status	= $xml_cae_dummy->authserver;
$dbserver_status	= $xml_cae_dummy->dbserver;
 
if (($appserver_status == 'OK') && ($authserver_status == 'OK') && ($dbserver_status == 'OK')) {
    print("OK - [appserver] ".$appserver_status." [authserver] ".$authserver_status." [dbserver] ".$dbserver_status."|rc=0\n");
    exit(0);
} else {
    print("CRITICAL - [appserver] ".$appserver_status." [authserver] ".$authserver_status." [dbserver] ".$dbserver_status."|rc=2\n");
    exit(2);
}
?>

En Python

check_xml_afip.php
#!/usr/bin/python
import errno, sys, urllib2
from xml.etree.ElementTree import XML
 
response = urllib2.urlopen('https://serviciosjava.afip.gob.ar/wsmtxca/services/MTXCAService/dummy')
xml_afip = XML(response.read())
 
dummy_afip = {}
contador = 0
 
for elem in xml_afip:
    dummy_afip[elem.tag]=elem.text
    if elem.text != 'OK':
	    if contador <= 0:
		contador = 1
	    else:
		contador = 1
 
if contador != 1:
    print "OK - ",dummy_afip,"|rc=0"
    sys.exit(0)
else:
    print "CRITICAL - ",dummy_afip,"|rc=1"
    sys.exit(1)
manuales/nagios/capacitacion/productos/argentina_-_afip_-_factura_electronica.1445007484.txt.gz · Última modificación: 2015/10/16 14:58 por cayu