Path: C:\
<?php
$achou='S';$erro='Sem Erro';
error_reporting(E_ALL);
ini_set('display_errors', 'On');
ini_set('max_execution_time', 2000); //300 seconds = 5 minutes
function erroMessage($er){
$httpErro = array(
100 => 'Autorizado o uso da NFe',
108 => 'Serviço Paralisado Momentaneamente (curto prazo)',
109 => 'Serviço Paralisado sem Previsão',
137 => 'Nenhum documento localizado para o Destinatário',
138 => 'Documento localizado para o Destinatário',
214 => 'Tamanho da mensagem excedeu o limite estabelecido',
215 => 'Falha no schema XML',
217 => 'NFe não consta na base de dados da SEFAZ',
236 => 'Chave de Acesso com dígito verificador inválido',
238 => 'Cabeçalho - Versão do arquivo XML superior a Versão vigente',
239 => 'Cabeçalho - Versão do arquivo XML não suportada',
252 => 'Ambiente informado diverge do Ambiente de recebimento',
258 => 'CNPJ da consulta inválido',
280 => 'Certificado Transmissor inválido',
281 => 'Certificado Transmissor Data Validade',
283 => 'Certificado Transmissor - erro Cadeia de Certificação',
284 => 'Certificado Transmissor revogado',
285 => 'Certificado Transmissor difere ICP-Brasil',
286 => 'Certificado Transmissor erro no acesso a LCR',
402 => 'XML da área de dados com codificação diferente de UTF-8',
404 => 'Uso de prefixo de namespace não permitido',
472 => 'CPF consultado difere do CPF do Certificado Digital',
473 => 'Certificado Transmissor sem CNPJ ou CPF',
500 => 'Erro interno do servidor',
589 => 'Número do NSU informado superior ao maior NSU do Ambiente Nacional',
593 => 'CNPJ consultado difere do CNPJ do Certificado Digital ',
619 => 'Chave de Acesso inválida (número NF = 0)',
632 => 'Solicitação fora de prazo, a NFe não está mais disponível para download',
640 => 'CNPJ/CPF do interessado não possui permissão para consultar esta NFe',
641 => 'NFe indisponível para o emitente',
653 => 'NFe Cancelada, arquivo indisponível para download',
654 => 'NFe Denegada, arquivo indisponível para download',
656 => 'Consumo indevido - ultrapassou o limite de 20 consultas por hora');
return (isset($httpErro[$er])) ? $httpErro[$er] : 'Rejeitado: Status: ➔ '.$er;
}
require ('vendor/autoload.php');
use NFePHP\NFe\Tools;
use NFePHP\Common\Certificate;
use NFePHP\NFe\Common\Standardize;
try {
$content = file_get_contents('TransWar.pfx');
$content2 = file_get_contents('TransRaw.pfx');
$configJson = file_get_contents('config1.json');
$certificate = Certificate::readPfx($content, 'WPS475475');
$certificate2 = Certificate::readPfx($content2, 'WPS475475');
$tools = new Tools($configJson, $certificate);
$tools->model('55');
$response = $tools->sefazDownload($chave);
$stdCl = new Standardize($response);
$std = $stdCl->toStd();
$err=$std->cStat;
$cnpj='CNPJ: 57.695.405/0001-09';
$erro = erroMessage($err);
echo $cnpj.' ➔ '.$erro.'<br>';
if ($std->cStat != 138)
{ $configJson = file_get_contents('config2.json');
$tools = new Tools($configJson, $certificate);
$tools->model('55');
$response = $tools->sefazDownload($chave);
$stdCl = new Standardize($response);
$std = $stdCl->toStd();
$err=$std->cStat;
$cnpj='CNPJ: 57.695.405/0002-90';
$erro = erroMessage($err);
echo $cnpj.' ➔ '.$erro.'<br>';
if ($std->cStat != 138)
{ $configJson = file_get_contents('config3.json');
$tools = new Tools($configJson, $certificate);
$tools->model('55');
$response = $tools->sefazDownload($chave);
$stdCl = new Standardize($response);
$std = $stdCl->toStd();
$err=$std->cStat;
$cnpj='CNPJ: 00.994.398/0001-29';
$erro = erroMessage($err);
echo $cnpj.' ➔ '.$erro.'<br>';
if ($std->cStat != 138)
{$achou='N';}
}
}
$arquivo="NotasXML/nf-".$nrNF."_1.xml";
header('Content-type: text/xml; charset=UTF-8');
file_put_contents($arquivo,$stdCl);
if ($achou=='S') { include 'montaXML.php'; }
} catch (\Exception $e)
{ $erro='Erro na consulta: '. $e->getMessage(); }
?>