¡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); } ?>