예제 #1
0
 public function teste()
 {
     /*
      * Exemplo de envio de Nfe já assinada e validada
      */
     require_once 'nfephp/libs/NFe/ToolsNFePHP.class.php';
     $nfe = new ToolsNFePHP();
     $modSOAP = '2';
     //usando cURL
     //use isso, este é o modo manual voce tem mais controle sobre o que acontece
     $filename = 'nfephp/exemplos/xml/11101284613439000180550010000004881093997017-nfe.xml';
     //obter um numero de lote
     $lote = substr(str_replace(',', '', number_format(microtime(true) * 1000000, 0)), 0, 15);
     // montar o array com a NFe
     $sNFe = file_get_contents($filename);
     //array vazio passado como referencia
     $aResp = array();
     debug($nfe->autoriza($sNFe, $lote, $aResp));
     //enviar o lote
     if ($resp = $nfe->autoriza($sNFe, $lote, $aResp)) {
         if ($aResp['bStat']) {
             echo "Numero do Recibo : " . $aResp['nRec'] . ", use este numero para obter o protocolo ou informações de erro no xml com testaRecibo.php.";
         } else {
             echo "Houve erro !! {$nfe->errMsg}";
         }
     } else {
         echo "houve erro !!  {$nfe->errMsg}";
     }
     debug($nfe);
     echo '<BR><BR><h1>DEBUG DA COMUNICAÇÕO SOAP</h1><BR><BR>';
     echo '<PRE>';
     echo htmlspecialchars($nfe->soapDebug);
     echo '</PRE><BR>';
     exit;
 }
예제 #2
0
function verifica($arquivo)
{
    echo "---INICIANDO VERIFICACAO DE [{$arquivo}]\n";
    $nfe = new ToolsNFePHP();
    $result = $nfe->verifyNFe($arquivo);
    echo "--FUNCAO EXECUTADA: [{$result}]\n";
    if (!$result) {
        echo "ERROR: [" . trim($nfe->errMsg) . "]\n";
    } else {
        echo "NFe APROVADA e VÁLIDA";
    }
    $nfe->errMsg = "";
    echo "---FIM DA VERIFICACAO DE [{$arquivo}]\n";
}
예제 #3
0
<?php

require_once dirname(__FILE__) . '/../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
header('Content-type: text/html; charset=UTF-8');
$sUF = 'AC;AL;AM;AP;BA;CE;DF;ES;GO;MA;MG;MS;MT;PA;PB;PE;PI;PR;RJ;RN;RO;RR;RS;SC;SE;SP;TO';
$sUF = 'SP';
//determina o ambiente 1-produção 2-homologação
$tpAmb = '2';
$aUF = explode(';', $sUF);
if ($tpAmb == 1) {
    $sAmb = 'Produção';
} else {
    $sAmb = 'Homologação';
}
foreach ($aUF as $UF) {
    echo '<br><hr/><br>';
    echo "{$UF} [ {$sAmb} ] ==> {$UF} <br>";
    $resp = $nfe->statusServico($UF, $tpAmb, $retorno);
    echo print_r($retorno);
    echo '<br>';
    echo $nfe->errMsg . '<br>';
    echo '<pre>';
    echo htmlspecialchars($nfe->soapDebug);
    echo '</pre><br>';
    echo $UF . '[' . $sAmb . '] - ' . $retorno['xMotivo'] . '<br><br><hr/><br>';
    flush();
}
/*
//Contignecia SVCAN
$UF = 'SP';
/**
 * Exemplo de uso do método autoProtNFe()
 * Serão buscados os protocolos das NFes contidas na pasta "enviadas", 
 * as NFe aprovadas terão o protocolo adicionado as mesmas e serão movidas para a pasta "enviadas/aprovadas",
 * as Denegadas terão o protocolo adicionado as mesmas e serão movidas para a pasta "enviadas/denegadas",
 * e as que retornarem erros serão movidas para a pasta "enviadas/reprovadas".
 * 
 * ATENÇÃO: Este método somente obterá exito caso a nota tenha sido aprovada pela SEFAZ, 
 * se foi reprovada um erro será retornado, tipo "A nota não consta da base de dados", 
 * pois a mesma não foi aceita.
 *    
 * As funções auto contidas na classe seguem uma determinada lógica
 * e movimentam as NFes pelos diretorios da estrutura.
 * 
 * Estas são funções simplificadas que podem ser utilizadas em linha de comando com 
 * o CRON para automatizar as tarefas de gestão das NFe.
 * 
 * As funções auto não são muito adequadas para o tratamento de erros !!!
 * Portanto é desaconselhado seu uso em ambiente Produção, sem outras 
 * ações que permitam o tratamento dos erros.
 * 
 * Recomenda-se o teste e leitura atenta das mesmas antes de tentar por em uso.
 * 
 */
error_reporting(E_ALL);
require_once '../libs/AutoToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
if (!$nfe->autoProtNFe()) {
    echo $nfe->errMsg;
}
예제 #5
0
<?php

/**
 * Exemplo de uso do método autoValidNFe()
 * Serão validadas contra o XSD as NFe já assinadas contidas na pasta "assinadas", 
 * caso a validação seja bem sucedida os arquivos serão movidos para a pasta "validadas",
 * caso contrario serão movidos para a pasta "rejeitadas".
 *   
 * As funções auto contidas na classe seguem uma determinada lógica
 * e movimentam as NFes pelos diretorios da estrutura.
 * 
 * Estas são funções simplificadas que podem ser utilizadas em linha de comando com 
 * o CRON para automatizar as tarefas de gestão das NFe.
 * 
 * As funções auto não são muito adequadas para o tratamento de erros !!!
 * Portanto é desaconselhado seu uso em ambiente Produção, sem outras 
 * ações que permitam o tratamento dos erros.
 * 
 * Recomenda-se o teste e leitura atenta das mesmas antes de tentar por em uso.
 * 
 */
error_reporting(E_ALL);
require_once '../libs/AutoToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
if (!$nfe->autoValidNFe()) {
    echo $nfe->errMsg;
}
예제 #6
0
<?php

/**
 * Exemplo de uso do método autoSignNFe()
 * Serão assinadas todas as NFe, em xml, que se encontrarem na pasta "entradas", com a terminação "*-nfe.xml",
 * caso a assinatura seja bem sucedida os xml serão movidos para a pasta "assinadas".
 *  
 * As funções auto contidas na classe seguem uma determinada lógica
 * e movimentam as NFes pelos diretorios da estrutura.
 * 
 * Estas são funções simplificadas que podem ser utilizadas em linha de comando com 
 * o CRON para automatizar as tarefas de gestão das NFe.
 * 
 * As funções auto não são muito adequadas para o tratamento de erros !!!
 * Portanto é desaconselhado seu uso em ambiente Produção, sem outras 
 * ações que permitam o tratamento dos erros.
 * 
 * Recomenda-se o teste e leitura atenta das mesmas antes de tentar por em uso.
 * 
 */
error_reporting(E_ALL);
require_once '../libs/AutoToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
if (!$nfe->autoSignNFe()) {
    echo $nfe->errMsg;
}
예제 #7
0
<?php

/**
 * Este é um exemplo para verificação da validade de uma NFe recebida de terceiros
 * esta NFe deve ter o seu protocolo anexado
 * O método irá verificar a aasinatura digital, o protocolo e o digest fornecido pela SEFAZ
 * através de uma consulta ao SEFAZ do estado do emissor
 */
header('Content-type: text/html; charset=UTF-8');
require_once '../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
//path para o arquivo da NFe recebida de terceiros que se quer verificar a validade
$fileNFe = "../xml/35101158716523000119550010000000011003000000-nfe.xml";
if (!$nfe->verifyNFe($fileNFe)) {
    echo $nfe->errMsg;
} else {
    echo "NFe APROVADA e VÁLIDA";
}
예제 #8
0
<?php

require_once dirname(__FILE__) . '/../../libs/NFe/ToolsNFePHP.class.php';
$arq = dirname(__FILE__) . '/../xml/11101284613439000180550010000004881093997017-nfe.xml';
$nfe = new ToolsNFePHP();
$docxml = file_get_contents($arq);
//para NFe 3.10
//$xsdFile = '../../schemes/PL_008f/nfe_v3.10.xsd';
//para NFe 2.00 com protocolo
$xsdFile = dirname(__FILE__) . '/../../schemes/PL_006u/procNFe_v2.00.xsd';
$aErro = array();
if (!$nfe->validXML($docxml, $xsdFile, $aErro)) {
    echo 'Estrutura do XML da NFe contêm erros --- <br>';
    foreach ($aErro as $er) {
        echo $er . '<br>';
    }
} else {
    echo 'Estrutura do XML da NFe foi VALIDADO!';
}
예제 #9
0
<?php

require_once '../libs/ToolsNFePHP.class.php';
$arq = 'xml/11101284613439000180550010000004881093997017-nfe.xml';
//$arq = './35120358716523000119550000000162421280334154-nfe.xml';
$nfe = new ToolsNFePHP();
$docxml = file_get_contents($arq);
$xsdFile = '/var/www/nfephp2/schemes/PL_006j/nfe_v2.00.xsd';
$aErro = '';
$c = $nfe->validXML($docxml, $xsdFile, $aErro);
if (!$c) {
    echo 'Houve erro --- <br>';
    foreach ($aErro as $er) {
        echo $er . '<br>';
    }
} else {
    echo 'VALIDADA!';
}
예제 #10
0
<?php

/**
 * não se esqueça de manter o config/nfe_ws3_mode55.xml atualizado
 */
require_once '../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
$fonte = 'AN';
$tpAmb = '1';
$ultNSU = 0;
$numNSU = 0;
$aResp = array();
$descompactar = false;
$resposta = $nfe->getDistDFe($fonte, $tpAmb, $ultNSU, $numNSU, $aResp, $descompactar);
echo "<pre>";
echo htmlentities($resposta);
echo "</pre>";
echo '<br><br><br>';
print_r($aResp);
echo '<br><br><br>';
echo "<pre>";
echo htmlentities($nfe->soapDebug);
echo "</pre>";
echo "";
예제 #11
0
<?php

/**
 * Exemplo de uso do método autoTXTtoXML()
 * Serão convertidas para xml todas os arquivos txt da pasta "entradas" nomeados como "*-nfe.txt", 
 * caso a conversão seja bem sucedida os arquivos txt serão movidos para a pasta "temporarias".
 *   
 * As funções auto contidas na classe seguem uma determinada lógica
 * e movimentam as NFes pelos diretorios da estrutura.
 * 
 * Estas são funções simplificadas que podem ser utilizadas em linha de comando com 
 * o CRON para automatizar as tarefas de gestão das NFe.
 * 
 * As funções auto não são muito adequadas para o tratamento de erros !!!
 * Portanto é desaconselhado seu uso em ambiente Produção, sem outras 
 * ações que permitam o tratamento dos erros.
 * 
 * Recomenda-se o teste e leitura atenta das mesmas antes de tentar por em uso.
 * 
 */
error_reporting(E_ALL);
require_once '../libs/AutoToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
if (!$nfe->autoTXTtoXML()) {
    echo $nfe->errMsg;
}
 /**
  * __construct
  * Método construtor da classe
  * Este método utiliza o arquivo de configuração localizado no diretorio config
  * para montar os diretórios e várias propriedades internas da classe, permitindo
  * automatizar melhor o processo de comunicação com o SEFAZ.
  * 
  * Este metodo pode estabelecer as configurações a partir do arquivo config.php ou 
  * através de um array passado na instanciação da classe.
  * 
  * @version 1.00
  * @package NFePHP
  * @author Roberto L. Machado <linux.rlm at gmail dot com>
  * @param array $aConfig Opcional dados de configuração
  * @param number $mododebug Opcional 1-SIM ou 0-NÃO (0 default)
  * @return  boolean true sucesso false Erro
  */
 function __construct($aConfig = '', $mododebug = 0)
 {
     //passa os parâmetros para a classe base
     parent::__construct($aConfig, $mododebug);
 }
<?php

header('Content-Type: text/html; charset=utf-8');
if (isset($_POST['conteudoArquivo']) || strlen(trim($_POST['conteudoArquivo'])) > 0) {
    require_once '../../libs/NFe/ToolsNFePHP.class.php';
    $xsdFile = '../../schemes/PL_008f/nfe_v3.10.xsd';
    if (!is_file($xsdFile)) {
        echo 'ERRO: Arquivo não encontrando [' . $xsdFile . ']';
        die;
    }
    $nfe = new ToolsNFePHP();
    $aErro = array();
    if (!$nfe->validXML($_POST['conteudoArquivo'], $xsdFile, $aErro)) {
        echo 'ERRO: Estrutura do XML da NFe contêm erros | ';
        echo 'Verifique se o arquivo XSD confrontado é o mais atual! | ';
        foreach ($aErro as $er) {
            echo $er . ' | ';
        }
    } else {
        echo 'Estrutura do XML da NFe foi VALIDADO!';
    }
    die;
}
echo 'ERRO: O conteúdo está vazio!';
예제 #14
0
<?php

/*
 * Exemplo de solicitação da situação da NFe atraves do numero do 
 * recibo de uma nota enviada e recebida com sucesso pelo SEFAZ
 */
require_once '../libs/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
$modSOAP = '2';
//usando cURL
$recibo = '351000598839931';
//este é o numero do seu recibo mude antes de executar este script
$chave = '';
$tpAmb = '2';
//homologação
header('Content-type: text/html; charset=UTF-8');
if ($aResp = $nfe->getProtocol($recibo, $chave, $tpAmb, $modSOAP)) {
    //houve retorno mostrar dados
    print_r($aResp);
} else {
    //não houve retorno mostrar erro de comunicação
    echo "Houve erro !! {$nfe->errMsg}";
}
예제 #15
0
 public function statusSefaz()
 {
     //COLETA STATUS DA RECEITA
     require_once '../nfe/libs/ToolsNFePHP.class.php';
     $nfe = new ToolsNFePHP();
     $st = $nfe->statusServico('SP', '1');
     if ($st['cStat'] == '107') {
         $status_receita = '<img src="../image/nfe_check_ok.png" style="margin:-4px 2px -5px 0px;" title="' . $st['xMotivo'] . '"/>';
     } else {
         $status_receita = '<img src="../image/nfe_check_off.png" style="margin:-4px 2px -5px 0px;" title="' . $st['xMotivo'] . '"/>';
     }
     return $status_receita;
 }
예제 #16
0
<?php

require_once dirname(__FILE__) . '/../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
$file = dirname(__FILE__) . '/../xml/35101158716523000119550010000000011003000000-nfe.xml';
$arq = file_get_contents($file);
if ($xml = $nfe->signXML($arq, 'infNFe')) {
    file_put_contents($file, $xml);
} else {
    echo $nfe->errMsg;
}
예제 #17
0
<?php

/**
 * Exemplo de uso do método autoPrintSend()
 * Todas as NFes contidas na pasta "enviadas/aprovadas" terão o DANFE impresso na impressora definida, 
 * e será enviado um email contendo a NFe em xml e o Danfe em pdf ao destinatario com email indicado na NFe,
 * em caso de sucesso as NFe serão colocadas em um subdiretório denominado com "YYYYMM",
 * sendo "YYYY" igual o ano de emissao da NFe e "MM" o mes de emissão.
 * 
 * ATENÇÃO: Este método somente obterá exito caso o pear Mail esteja instalado e o sistema possa 
 * acessar a impressora estabelecida.
 *    
 * As funções auto contidas na classe seguem uma determinada lógica
 * e movimentam as NFes pelos diretorios da estrutura.
 * 
 * Estas são funções simplificadas que podem ser utilizadas em linha de comando com 
 * o CRON para automatizar as tarefas de gestão das NFe.
 * 
 * As funções auto não são muito adequadas para o tratamento de erros !!!
 * Portanto é desaconselhado seu uso em ambiente Produção, sem outras 
 * ações que permitam o tratamento dos erros.
 * 
 * Recomenda-se o teste e leitura atenta das mesmas antes de tentar por em uso.
 * 
 */
error_reporting(E_ALL);
require_once '../libs/AutoToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
if (!$nfe->autoPrintSend()) {
    echo $nfe->errMsg;
}
예제 #18
0
<?php

/*
 * Exemplo de envio de Nfe já assinada e validada
 */
require_once dirname(__FILE__) . '/../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
$modSOAP = '2';
//usando cURL
//use isso, este é o modo manual voce tem mais controle sobre o que acontece
$filename = dirname(__FILE__) . '/../xml/35101158716523000119550010000000011003000000-nfe.xml';
//obter um numero de lote
$lote = substr(str_replace(',', '', number_format(microtime(true) * 1000000, 0)), 0, 15);
// montar o array com a NFe
$sNFe = file_get_contents($filename);
//array vazio passado como referencia
$aResp = array();
//enviar o lote
if ($resp = $nfe->autoriza($sNFe, $lote, $aResp)) {
    if ($aResp['bStat']) {
        echo "Numero do Recibo : " . $aResp['nRec'] . ", use este numero para obter o protocolo ou informações de erro no xml com testaRecibo.php.";
    } else {
        echo "Houve erro !! {$nfe->errMsg}";
    }
} else {
    echo "houve erro !!  {$nfe->errMsg}";
}
echo '<br><br><h1>DEBUG DA COMUNICAÇÕO SOAP</h1><br><br>';
echo '<pre>';
echo htmlspecialchars($nfe->soapDebug);
echo '</pre><br>';
<?php

header('Content-Type: text/html; charset=utf-8');
if (isset($_POST['conteudoArquivo']) || strlen(trim($_POST['conteudoArquivo'])) > 0) {
    require_once '../../libs/NFe/ToolsNFePHP.class.php';
    $nfe = new ToolsNFePHP();
    if ($xml = $nfe->signXML($_POST['conteudoArquivo'], 'infNFe')) {
        echo trim($xml);
    } else {
        echo 'ERRO: ' . $nfe->errMsg;
    }
    die;
}
echo 'ERRO: O conteúdo está vazio!';
예제 #20
0
<?php

/*
 * Exemplo de solicitação da situação da NFe atraves do numero do
 * recibo de uma nota enviada e recebida com sucesso pelo SEFAZ
 */
require_once '../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
$chave = '';
$xCorrecao = 'NFe emitida em Ambiente de Homologação';
$nSeq = 1;
$tpAmb = '2';
//homologação
header('Content-type: text/xml; charset=UTF-8');
if ($aResp = $nfe->envCCe($chave, $xCorrecao, $nSeq, $tpAmb, $retorno)) {
    //houve retorno mostrar dados
    print_r($aResp);
} else {
    //não houve retorno mostrar erro de comunicação
    echo "Houve erro !! {$nfe->errMsg}";
}
예제 #21
0
<?php

/**
 * testaCancelaEvent
 *
 * Rotina de teste de cancelamento por evento
 *
 * Corrija os dados para o cancelamento antes de testar
 */
require_once '../libs/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
$chNFe = "<ID da NFe>";
$nProt = "<ID do protocolo de aprovação>";
$xJust = "<descrição do motivo de cancelamento>";
$tpAmb = '2';
$modSOAP = '2';
if ($resp = $nfe->cancelEvent($chNFe, $nProt, $xJust, $tpAmb, $modSOAP)) {
    header('Content-type: text/xml; charset=UTF-8');
    echo $resp;
} else {
    header('Content-type: text/html; charset=UTF-8');
    echo '<BR>';
    echo $nfe->errMsg . '<BR>';
    echo '<PRE>';
    echo htmlspecialchars($nfe->soapDebug);
    echo '</PRE><BR>';
}
예제 #22
0
<?php

//ATENÇÃO o intervalo mínimo entre cada chamada desse script é de no mínimo 1 hora
//caso ocorram chamadas em tempo menores o sistema da SEFAZ irá parar de responder.
//
//a pesquisa sempre inicia do ultNSU consultado e registrado no xml config/numNSU.xml
//e portanto as NFe retornadas são apenas as recebidas após essa última consulta.
//
//É recomendável que o usuário não tenha acesso a essa chamada e que a mesma seja
//feita periódicamente (usando um agendador) por exemplo 3 ou 4 vezes ao dia no
//máximo.
require_once '../libs/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP('', 1, false);
$modSOAP = '2';
//usando cURL
$tpAmb = '1';
//usando produção
$indNFe = '0';
$indEmi = '0';
$ultNSU = '';
$AN = true;
$retorno = array();
$indCont = 1;
$limite = 1;
$nxm = '<?xml version="1.0" encoding="utf-8"?><root>';
while ($indCont != 0) {
    if (!($xml = $nfe->getListNFe($AN, $indNFe, $indEmi, $ultNSU, $tpAmb, $modSOAP, $retorno))) {
        echo "Houve erro !! {$nfe->errMsg}";
        echo '<br><br><PRE>';
        echo htmlspecialchars($nfe->soapDebug);
        echo '</PRE><BR>';
예제 #23
0
<?php

//ATENÇÃO o intervalo mínimo entre cada chamada desse script é de no mínimo 1 hora
//caso ocorram chamadas em tempo menores o sistema da SEFAZ irá parar de responder.
//
//a pesquisa sempre inicia do ultNSU consultado e registrado no xml config/numNSU.xml
//e portanto as NFe retornadas são apenas as recebidas após essa última consulta.
//
//É recomendável que o usuário não tenha acesso a essa chamada e que a mesma seja
//feita periódicamente (usando um agendador) por exemplo 3 ou 4 vezes ao dia no
//máximo.
error_reporting(E_ALL);
ini_set('display_errors', 'On');
require_once '../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP('', 1, false);
$modSOAP = '2';
//usando cURL
$tpAmb = '1';
//usando produção
$indNFe = '0';
$indEmi = '0';
$ultNSU = '';
$ambNac = true;
$retorno = array();
$indCont = 1;
$limite = 1;
$nxm = '<?xml version="1.0" encoding="utf-8"?><root>';
while ($indCont != 0) {
    if (!($xml = $nfe->getListNFe($ambNac, $indNFe, $indEmi, $ultNSU, $tpAmb, $retorno))) {
        echo "Houve erro !! {$nfe->errMsg}";
        echo '<br><br><PRE>';
예제 #24
0
<?php

/*
 * Exemplo de solicitação de Inutilização de faixa de numeros
 * da NFe (modelo 55)
 */
require_once dirname(__FILE__) . '/../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP('', 2, false);
$nAno = '13';
//ano atual com 2 digitos
$nSerie = '1';
//numero da serie da NFe que será inutilizada
$nIni = '4';
// numero inicial da faixa que será inutilizada
$nFin = '6';
// numero final da faixa que será inutilizada
$xJust = 'Falha na gravação da base de doas do ERP';
// entre 15 e 255 dígitos
$tpAmb = '2';
//homologação
$modSOAP = '2';
//usando cURL
header('Content-type: text/html; charset=UTF-8');
if ($xml = $nfe->inutNF($nAno, $nSerie, $nIni, $nFin, $xJust, $tpAmb, $modSOAP)) {
    //houve retorno mostrar dados
    echo '<br>';
    echo '<pre>';
    echo htmlspecialchars($nfe->soapDebug);
    echo '</pre>';
    echo '<br>';
    echo 'Retorno da Solicitação de Inutilização';
예제 #25
0
<?php

require_once '../libs/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP('', 1, false);
$modSOAP = '2';
//usando cURL
$tpAmb = '2';
//usando produção
$chNFe = '<chave de 44 digitos>';
/*
$tpEvento = '210200';//Confirmacao da Operacao //confirma a operação e o recebimento da mercadoria (para as operações com circulação de mercadoria)
                   //Após a Confirmação da Operação pelo destinatário, a empresa emitente fica automaticamente impedida de cancelar a NF-e
                   
$tpEvento = '210210'; //Ciencia da Operacao //encrenca !!! Não usar
                   //O evento de “Ciência da Operação” é um evento opcional e pode ser evitado
                   //Após um período determinado, todas as operações com “Ciência da Operação” deverão
                   //obrigatoriamente ter a manifestação final do destinatário declarada em um dos eventos de
                   //Confirmação da Operação, Desconhecimento ou Operação não Realizada
                   
$tpEvento = '210220'; //Desconhecimento da Operacao
                   //Uma empresa pode ficar sabendo das operações destinadas a um determinado CNPJ
                   //consultando o “Serviço de Consulta da Relação de Documentos Destinados” ao seu CNPJ.
                   //O evento de “Desconhecimento da Operação” permite ao destinatário informar o seu
                   //desconhecimento de uma determinada operação que conste nesta relação, por exemplo
                   
$tpEvento = '210240'; //Operacao nao Realizada 
                     //não aceitação no recebimento que antes se fazia com apenas um carimbo na NF
*/
$tpEvento = '210200';
$resp = '';
if (!($xml = $nfe->manifDest($chNFe, $tpEvento, '', $tpAmb, $modSOAP, $resp))) {
예제 #26
0
<?php

/*
 * Exemplo de solicitação da situação da NFe atraves do numero do
 * recibo de uma nota enviada e recebida com sucesso pelo SEFAZ
 */
require_once dirname(__FILE__) . '/../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
$modSOAP = '2';
//usando cURL
$recibo = '';
//este é o numero do seu recibo mude antes de executar este script
$chave = '41140806161494000172550010000000221324615473';
$tpAmb = '2';
//homologação
header('Content-type: text/xml; charset=UTF-8');
if ($aResp = $nfe->getProtocol($recibo, $chave, $tpAmb, $retorno)) {
    //houve retorno mostrar dados
    print_r($aResp);
} else {
    //não houve retorno mostrar erro de comunicação
    echo "Houve erro !! {$nfe->errMsg}";
}
예제 #27
0
<?php

require_once '../../libs/NFe/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP('', 1);
$UF = 'SP';
$CNPJ = '43651066000154';
$IE = '';
$CPF = '';
$tpAmb = '2';
$modSOAP = '2';
if ($resposta = $nfe->consultaCadastro($UF, $CNPJ, $IE, $CPF, $tpAmb, $modSOAP)) {
    print_r($resposta);
    echo '<PRE>';
    echo htmlspecialchars($nfe->soapDebug);
    echo '</PRE><BR>';
} else {
    echo "Houve erro !! {$nfe->errMsg}";
    echo '<PRE>';
    echo htmlspecialchars($nfe->soapDebug);
    echo '</PRE><BR>';
}
예제 #28
0
<?php

require_once '../libs/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
$nfefile = $nfe->envDir . '35130471780456000160550010000000411000000410-nfe.xml';
$protfile = $nfe->temDir . '35130471780456000160550010000000411000000410-prot.xml';
if ($xml = $nfe->addProt($nfefile, $protfile)) {
    file_put_contents($nfe->aprDir . '35130471780456000160550010000000411000000410-procNfe.xml', $xml);
}
예제 #29
0
 /**
  * __contruct
  * @param array $aConfig
  * @param int $mododebug
  * @param boolean $exceptions
  * @param boolean $save_files : atributo que visa o salvamento automático das informações
  */
 public function __construct($aConfig = '', $mododebug = 2, $exceptions = false, $save_files = true)
 {
     parent::__construct($aConfig, $mododebug, $exceptions);
     $sAmb = $this->tpAmb == 2 ? 'homologacao' : 'producao';
     $url_servico = "https://{$sAmb}.ginfes.com.br/ServiceGinfesImpl";
     /* - adequações de ambiente - */
     $this->nfseDir = $this->arqDir . $sAmb . DIRECTORY_SEPARATOR . 'nfse' . DIRECTORY_SEPARATOR;
     $this->schemeVer = "NFSe/ginfes";
     $this->save_files = $save_files;
     $this->__cria_estrutura_diretorios();
     //--------------------------------------------------------------------------------------------------//
     //DEFINIÇÃO DAS CHAMADAS AO SERVIÇOS
     //--------------------------------------------------------------------------------------------------//
     $this->mURL['EnviarLoteRpsEnvio']['url'] = $url_servico;
     $this->mURL['EnviarLoteRpsEnvio']['version'] = 'v03';
     $this->mURL['EnviarLoteRpsEnvio']['method'] = 'RecepcionarLoteRpsV3';
     $this->mURL['EnviarLoteRpsEnvio']['xsd'] = 'servico_enviar_lote_rps_envio_v03.xsd';
     $this->mURL['ConsultarLoteRpsEnvio']['url'] = $url_servico;
     $this->mURL['ConsultarLoteRpsEnvio']['version'] = 'v03';
     $this->mURL['ConsultarLoteRpsEnvio']['method'] = 'ConsultarLoteRpsV3';
     $this->mURL['ConsultarLoteRpsEnvio']['xsd'] = 'servico_consultar_lote_rps_envio_v03.xsd';
     $this->mURL['ConsultarSituacaoLoteRpsEnvio']['url'] = $url_servico;
     $this->mURL['ConsultarSituacaoLoteRpsEnvio']['version'] = 'v03';
     $this->mURL['ConsultarSituacaoLoteRpsEnvio']['method'] = 'ConsultarSituacaoLoteRpsV3';
     $this->mURL['ConsultarSituacaoLoteRpsEnvio']['xsd'] = 'servico_consultar_situacao_lote_rps_envio_v03.xsd';
     $this->mURL['ConsultarNfseRpsEnvio']['url'] = $url_servico;
     $this->mURL['ConsultarNfseRpsEnvio']['version'] = 'v03';
     $this->mURL['ConsultarNfseRpsEnvio']['method'] = 'ConsultarNfsePorRpsV3';
     $this->mURL['ConsultarNfseRpsEnvio']['xsd'] = 'servico_consultar_nfse_rps_envio_v03.xsd';
     $this->mURL['ConsultarNfseEnvio']['url'] = $url_servico;
     $this->mURL['ConsultarNfseEnvio']['version'] = 'v03';
     $this->mURL['ConsultarNfseEnvio']['method'] = 'ConsultarNfseV3';
     $this->mURL['ConsultarNfseEnvio']['xsd'] = 'servico_consultar_nfse_envio_v03.xsd';
     /*
      $this->mURL['CancelarNfseEnvio']['url']                = $url_servico;
      $this->mURL['CancelarNfseEnvio']['version']            = '3';
      $this->mURL['CancelarNfseEnvio']['method']             = 'CancelarNfseV3';
      $this->mURL['CancelarNfseEnvio']['xsd']                = 'servico_cancelar_nfse_envio_v03.xsd';
     */
     $this->mURL['CancelarNfseEnvio']['url'] = $url_servico;
     $this->mURL['CancelarNfseEnvio']['version'] = 'v02';
     $this->mURL['CancelarNfseEnvio']['method'] = 'CancelarNfse';
     $this->mURL['CancelarNfseEnvio']['xsd'] = 'servico_cancelar_nfse_envio_v02.xsd';
 }
예제 #30
-1
<?php

/*
 * Exemplo de envio de Nfe já assinada e validada
 */
require_once '../libs/ToolsNFePHP.class.php';
$nfe = new ToolsNFePHP();
$modSOAP = '2';
//usando cURL
//use isso, este é o modo manual voce tem mais controle sobre o que acontece
$filename = './35101158716523000119550010000000011003000000-nfe.xml';
//obter um numero de lote
$lote = substr(str_replace(',', '', number_format(microtime(true) * 1000000, 0)), 0, 15);
// montar o array com a NFe
$aNFe = array(0 => file_get_contents($filename));
//enviar o lote
if ($aResp = $nfe->sendLot($aNFe, $lote, $modSOAP)) {
    if ($aResp['bStat']) {
        echo "Numero do Recibo : " . $aResp['nRec'] . ", use este numero para obter o protocolo ou informações de erro no xml com testaRecibo.php.";
    } else {
        echo "Houve erro !! {$nfe->errMsg}";
    }
} else {
    echo "houve erro !!  {$nfe->errMsg}";
}
echo '<BR><BR><h1>DEBUG DA COMUNICAÇÕO SOAP</h1><BR><BR>';
echo '<PRE>';
echo htmlspecialchars($nfe->soapDebug);
echo '</PRE><BR>';