Envio de NF-e Sefaz

309 views
Skip to first unread message

Bruno M.

unread,
Jan 22, 2018, 3:19:07 PM1/22/18
to NFePHP
Boa tarde.
Vendo a versão anterior faço assim:

$aResposta = array();
$chave = $vetor_nfe['chavegerada'];
$tpAmb = '1';
// $aXml = file_get_contents("/var/www/nfe/homologacao/assinadas/{$chave}-nfe.xml"); // Ambiente Linux
$aXml = file_get_contents("/home/imperio/public_html/sistema/assinadas/{$chave}-nfe.xml"); // Ambiente Windows
$idLote = '1';
$indSinc = '1';
$flagZip = false;
$retorno = $nfe->sefazEnviaLote($aXml, $tpAmb, $idLote, $aResposta, $indSinc, $flagZip);

como eu faço nesta versão nova o envio usando a classe sefazEnviaLote?

Tenho uma string 

$xml = "";

que trago meu xml já assinado anteriormente.

Pegando um exemplo a linha de envio e essa:

$idLote = str_pad($nfemit->id, 15, '0', STR_PAD_LEFT);
    //envia o xml para pedir autorização ao SEFAZ
$resp = $this->tools->sefazEnviaLote([$xml], $idLote);

da o seguinte erro:

Fatal error: Using $this when not in object context in C:\xampp\htdocs\nfe\enviaNFe.php on line 201

thi...@cpninformatica.com.br

unread,
Jan 23, 2018, 11:06:28 AM1/23/18
to NFePHP
É um erro de código do PHP. Verifique se está correto chamar o tools usando "$this". Também veja se não está em um método estático.

Sérgio Santos

unread,
Jan 23, 2018, 11:12:04 AM1/23/18
to NFePHP
Eu estou fazendo assim:


try {

############### TOOLS ###############
    $senhaCertificado
= "*******";
    $urlCertificado
= "certificado.p12";
    $certificado
= file_get_contents($urlCertificado);

    $urlConfigJson
= "/nfephp/config/configv5.json";
    $configJson
= file_get_contents($urlConfigJson);
   
    $certificate
= Certificate::readPfx($certificado, $senhaCertificado);
    $tools
= new Tools($configJson, $certificate);
    $tools
->model('55');
    $tools
->version('4.00');
############### TOOLS ###############

$stringXML
= "/var/www/nfe/xml/nota.xml";
$xml
= file_get_contents($stringXML);

$idLote
= str_pad(1, 15, '0', STR_PAD_LEFT);

//envia o xml para pedir autorização ao SEFAZ

$resp
= $tools->sefazEnviaLote([$xml], $idLote);

//transforma o xml de retorno em um stdClass
$st
= new Standardize();
$std
= $st->toStd($resp);
if ($std->cStat != 103) {
   
//erro registrar e voltar
    $erro
= "[$std->cStat] $std->xMotivo";
}

$recibo
= $std->infRec->nRec;



Abraços

Bruno M.

unread,
Jan 23, 2018, 6:54:57 PM1/23/18
to NFePHP
Vlw Sergio, amanha cedo irei testar

Bruno M.

unread,
Jan 24, 2018, 7:26:33 AM1/24/18
to NFePHP
Sergio aparentemente foi.

Houve alguma alteração na parte do xNome para emissão?

Pois esta dando erro:

This XML is not valid. Element '{http://www.portalfiscal.inf.br/nfe}xNome': [facet 'pattern'] The value '
NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL
' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'.

Em segunda-feira, 22 de janeiro de 2018 18:19:07 UTC-2, Bruno M. escreveu:

Roberto Machado

unread,
Jan 24, 2018, 7:35:05 AM1/24/18
to nfe...@googlegroups.com
Não é isso !

Esse REGEX não funciona no PHP !!!

Os xsd foram ajustados, e você não atualizou sua cópia com o composer

o regex correto para uso no PHP é :

'[!-ÿ]{1}[ -ÿ]*[!-ÿ]{1}|[!-ÿ]{1}'

Roberto

Bruno M.

unread,
Jan 24, 2018, 9:04:31 AM1/24/18
to NFePHP
a ok roberto, fiz a instação dia 05 de janeiro, mais vou rodar o update aqui.


Em segunda-feira, 22 de janeiro de 2018 18:19:07 UTC-2, Bruno M. escreveu:

Roberto Machado

unread,
Jan 24, 2018, 9:36:49 AM1/24/18
to nfe...@googlegroups.com
Estou subindo várias correções toda a semana nessa parte referente ao layout 4.0. Conforme vão me indicando as falhas ou vão saindo as correções da SEFAZ.

Roberto

Bruno M.

unread,
Jan 25, 2018, 10:37:44 AM1/25/18
to NFePHP
Roberto no cadastro do meu json qual schemes devo usar para nfe 4.0?

PL_008i2?


Em segunda-feira, 22 de janeiro de 2018 18:19:07 UTC-2, Bruno M. escreveu:

Sérgio Antônio dos Santos

unread,
Jan 25, 2018, 10:42:59 AM1/25/18
to nfe...@googlegroups.com

Sérgio Antônio dos Santos
Bacharel em Sistemas de Informação

-----------
“O que vale a pena possuir, vale a pena esperar”.
Santa Teresa Benedita da Cruz (Edith Stein 1891-1945)

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+unsubscribe@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/nfephp/Lod2wwEKV4w/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para nfephp+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Bruno M.

unread,
Jan 25, 2018, 6:50:49 PM1/25/18
to NFePHP
O que estou fazendo de errado, fiz os testes e as informações estão vindo.

$config = [
    "atualizacao" => "2015-10-02 06:01:21",
    "tpAmb" => $vetor_empresa[tpAmb],
    "razaosocial" => $vetor_empresa[nome],
    "siglaUF" => $vetor_empresa[estado],
    "cnpj" => $vetor_empresa[cpfcnpj],
    "schemes" => $vetor_empresa[schemes],
    "versao" => "4.00",
    "tokenIBPT" => "AAAAAAA",
    "CSC" => "GPB0JBWLUR6HWFTVEAS6RJ69GPCROFPBBB8G",
    "CSCid" => "000002",
    "aProxyConf" => [
        "proxyIp" => "",
        "proxyPort" => "",
        "proxyUser" => "",
        "proxyPass" => ""
    ]    
];

2A configuração (config.json) não é válido [tpAmb] String value found, but an integer is required
[tpAmb] Must be at least 2 characters long

Em segunda-feira, 22 de janeiro de 2018 18:19:07 UTC-2, Bruno M. escreveu:

Bruno M.

unread,
Jan 25, 2018, 7:31:59 PM1/25/18
to NFePHP
Fui tentar enviar aqui o Xml deu o seguinte erro:

This XML is not valid. Element '{http://www.portalfiscal.inf.br/nfe}NFe': Missing child element(s). Expected is one of ( {http://www.portalfiscal.inf.br/nfe}infNFeSupl, {http://www.w3.org/2000/09/xmldsig#}Signature ).

O problema que pegando o xml assinado e enviar pelo programa de testes do governo ele foi, mesmo já assinado.

Testei tambem usando o site:


coloando o xml e deu certo, mais na API da esse erro.

  • Parser XML: Nenhum erro encontrado
  • Tipo de Mensagem: Documento de NF-e
  • Schema XML: Nenhum erro encontrado
  • NF-e 52180117618724000104550010000000081643356329
    • Certificado Digital do Titular: CN=HELIO LUCIO RABELO:17618724000104 - CNPJ: 17.618.724/0001-04 [Visualizar]
    •  Assinatura Digital: Válida
    • Regras de Negócio [Ambiente de Homologação (Testes)]
      • 100 - [Simulacao] Autorizado o uso da NF-e

Em segunda-feira, 22 de janeiro de 2018 18:19:07 UTC-2, Bruno M. escreveu:

Márcos Eduardo V. Martins

unread,
Jan 26, 2018, 10:47:05 AM1/26/18
to NFePHP
Boa tarde Bruno,

fiz agora há pouco o update pelo composer e começou apontar esse seu erro. Significa que agora vc deve passar para esse seu arquivo json o [tpAmb] em formato inteiro e não mais como "string". Alterei o meu aqui e voltou tudo ao normal!


Att Marcos

Bruno M.

unread,
Jan 26, 2018, 10:50:47 AM1/26/18
to NFePHP
Marcos fiz isso tambem e deu certo, meu problema agora é que quando tento emitir da erro:

This XML is not valid. Element '{http://www.portalfiscal.inf.br/nfe}NFe': Missing child element(s). Expected is one of ( {http://www.portalfiscal.inf.br/nfe}infNFeSupl, {http://www.w3.org/2000/09/xmldsig#}Signature ).

sendo que no programa do governo usando o xml já assinado e no validador do sefaz do rio grande do sul esta tudo ok.


Em segunda-feira, 22 de janeiro de 2018 18:19:07 UTC-2, Bruno M. escreveu:

william paulo

unread,
Jan 26, 2018, 1:59:48 PM1/26/18
to NFePHP
o valor para tpAmb deve ser um inteiro.
Você pode usar um cast para garantir que o número que você passar será um inteiro
ex.:

$config = [
    "tpAmb" => (int) $vetor_empresa['tpAmb'],
];

Bruno M.

unread,
Jan 27, 2018, 4:25:28 PM1/27/18
to NFePHP
willian já havia resolvido, obrigado, meu problema agora e outro


Em segunda-feira, 22 de janeiro de 2018 18:19:07 UTC-2, Bruno M. escreveu:
Reply all
Reply to author
Forward
0 new messages