Funciona em ambiente de produção, mas não funciona em ambiente de homologação... Por que???

49 views
Skip to first unread message

Bernardo Hoehl

unread,
Sep 4, 2010, 9:06:31 PM9/4/10
to nfe...@googlegroups.com
Amigos,


Estou tentando fazer testes de envio aqui.

1) Pego um xml existente, verdadeiro e protocolado no SEFAZ. Removo na unha os tags de protocolo, deixando-o como estaria antes do envio. Assinado.

2) No ambiente de homologação faço o envio, que resulta em "Lote recebido com sucesso".

3) Ao consultar a NFe, ela retorna NF-e não consta na base de dados da SEFAZ".

4) Repito o procedimento, porém alterando o config.php para $ambiente=1. Ou seja: Ambiente de produção.

5) Envio o mesmo xml. Resulta em "Lote recebido com sucesso.

6) Consulto o NF-e que retorna o protocolo "Autorizado uso da NF-e". Mostra o protocolo com data e hora originais do envio verdadeiro.

Alguém pode me explicar o que ocorre de errado?

Não posso usar um xml previamente usado no verdadeiro envio de NF-e?

As rotinas do SEFAZ criticam o tag "procEmi? que está marcado como "3" (aplicativo fornecido pelo fisco)?

Obrigado por seus comentários,

Bernardo Höhl
Rio de Janeiro


FerreiraH.

unread,
Sep 4, 2010, 10:47:32 PM9/4/10
to nfe...@googlegroups.com
Pode utilizar mas deve trocar o numero da nota fiscal ou do formulario e tambem corrigir o codigo de 44 digitos arruamndo as datas e o digito verificador e o numero da nota fiscal.
Observe que o sefaz le seu xml e refaz o cod de 44 digitos e seu digito verificador se não bater a nota não continua a processar.
 o cnpj deve ser o mesmo do certificado e dentro da nota e no codigo de 44 digitos.
se voce envia um lote de 50 notas o Sefaz te responde lote recebido ou em processamento.(mas não quais notas foi aceita ou rejeitada )
Mas voce deve pedir o retorno de nota por nota utilizando o numero desta ai a resposta é aprovada reprovada (o porque foi reprovada ) denegada

    function get_chave_acesso() {

        // 02 - cUF  - código da UF do emitente do Documento Fiscal
        $chave = sprintf("%02d", $this->cUF);
        // 04 - AAMM - Ano e Mes de emissão da NF-e
        $chave.= sprintf("%04d", substr($this->dEmi, 2, 2).substr($this->dEmi, 5, 2));
        // 14 - CNPJ - CNPJ do emitente
        $chave.= sprintf("%014s", $this->CNPJ);
        // 02 - mod  - Modelo do Documento Fiscal
        $chave.= sprintf("%02d", $this->mod);
        // 03 - serie - Série do Documento Fiscal
        $chave.= sprintf("%03d", $this->serie);
        // 09 - nNF  - Número do Documento Fiscal
        $chave.= sprintf("%09d", $this->nNF);# Forma de Emissão da NFe (01 digito)               
        // 08 - cNF  - Código da NF-e (09 dígitos número aleatório gerado pelo sistema)(qualquer numero pode ser sempre o mesmo)
        $chave.= sprintf("%09d", $this->cNF);
        // 01 - cDV  - Dígito Verificador da Chave de Acesso
        $this->cDV= $this->calcula_dv($chave);
        $chave.= $this->cDV;
        return $chave;
    }





--
Ferreira Helder
B2Stok.net ERP Php5-Gtk2
PhpGtkEditor
PhpSDL
PhpGladeTools
Voce pode colaborar

Roberto L. Machado

unread,
Sep 5, 2010, 8:07:25 AM9/5/10
to nfe...@googlegroups.com
Bernardo;

Tem mais erros ai .. o tpAmb do xml deve ser 2 para homologação, e a
chave de 44 digitos irá mudar então não basta apenas tirar a assinatura
e o protocolo.

Roberto

Bernardo Hoehl

unread,
Sep 6, 2010, 9:51:44 AM9/6/10
to nfe...@googlegroups.com
Amigos Roberto e Ferreira.


Muuuuito obrigado pela dica.

Funcionou agora.

Fico a sua disposição se precisarem de alguma ajuda do mundo Mac.

Obrigadão!


Bernardo

=====================

Bernardo Hoehl

unread,
Sep 6, 2010, 10:10:04 AM9/6/10
to nfe...@googlegroups.com
Ferreira,

Você tem o código para pegar o retorno nota por nota?

Obrigado!

Bernardo

==================
On 04.09.2010, at 11:47 PM, FerreiraH. wrote:

FerreiraH.

unread,
Sep 6, 2010, 10:24:40 AM9/6/10
to nfe...@googlegroups.com
faça o seguinte
Em b2stok.net tem varios modulos do B2Stok  baixe o modulo B2StokNFeNet la as classes são para rodar em apache ou servidor.
no diretorio inicial tem alguns scripts assinaxml , validaxml , enviaxml, retornaxml, email
No retornaxml.php tem a função que eu chamo do ToolsNFePHP.class.php e depois o tratamento da resposta. somente tome cuidado que o ToolsNFePHP.class.php não é exatamente o do NFePHP pois fiz algumas modificação de acordo com minhas necessidades.
No meu caso esta função é chamada nota a nota pois controlo em um banco de dados o estagio de cada nota
Já no caso do envio eu tambem busco o retorno de imediato mas depois tambem busco utilizando o retornaxml

Reply all
Reply to author
Forward
0 new messages