SEFAZ GO

267 views
Skip to first unread message

Walber Sales

unread,
Feb 24, 2015, 9:13:13 PM2/24/15
to nfe...@googlegroups.com
Olá Roberto,


Conforme seu comentário robmachado commented Sep 22, 2014
referente a SEFAZ de GO ainda faz necessário?
Quem esta usando a API para GO?

Grato,

Walber Sales


robmachado commented Sep 22, 2014

A SEFAZ GO está alterando seu webservice para somente aceitar o
certificado com a cadeia completa isso implica em algumas alterações.

1 - o método pSendSOAP() deve ser alterada a linha 4498
curl_setopt($oCurl, CURLOPT_SSLCERT, $this->pubKEY); para
curl_setopt($oCurl, CURLOPT_SSLCERT, $this->certKEY);

2 - o arquivo pfx deverá conter a cadeia completa de certificação para
que isso funcione ou deverá ser incluso no arquivo -certKEY.pem os
outros certificados para manter a cadeia de certificação completa. No
caso da Certisign devem ser inclusos os arquivos
ACRaizBrasileira_v2.cer
ACCertisignG6_v2.cer
ACCertisignMultiplaG5.cer

Roberto Machado

unread,
Feb 25, 2015, 6:06:57 AM2/25/15
to nfe...@googlegroups.com
Ano passado um colega questionou por que não estava conseguindo acessar SEFAZ-GO e eu fui verificar e realmente estava recusando a conexão. Na internet achei um comentário falando sobre isso e inclui toda a cadeia de certificados no meu certificado. A partir dai SEFAZ-GO permitiu o acesso.

Como está hoje ?? Não sei teria que testar.

Roberto

Walber Sales

unread,
Feb 25, 2015, 10:10:17 PM2/25/15
to nfe...@googlegroups.com
Mestre Roberto,


Na dica "1" em 09/2014 ref Sefaz GO , comenta em trocar pubkey para certkey.
Conforme:
curl_setopt($oCurl, CURLOPT_SSLCERT, $this->pubKEY); para
curl_setopt($oCurl, CURLOPT_SSLCERT, $this->certKEY);

atualmente estou usando a API na versão 3.10.08=beta
@package NFePHP
@name ToolsNFePHP
@version 3.10.08-beta

E na Linha 4655 já esta certkey
curl_setopt($oCurl, CURLOPT_SSLCERT, $this->certKEY);

Neste caso, esta versão já esta conforme a dica '1' ?

Grato,

Walber Sales



Em 25 de fevereiro de 2015 08:06, Roberto Machado
<linu...@gmail.com> escreveu:
> --
> --
> Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
> Para Postar: nfe...@googlegroups.com
> Para Sair do Grupo: nfephp+un...@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 no grupo "NFePHP" dos Grupos
> do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie
> um e-mail para nfephp+un...@googlegroups.com.
> Para mais opções, acesse https://groups.google.com/d/optout.

Roberto Machado

unread,
Feb 26, 2015, 6:08:56 AM2/26/15
to nfe...@googlegroups.com
Grande Walber;

Sim você está certo, já foi feita essa alteração tanto no versão atual como na próxima que está em "desenvolvimento".

Porém, não encontrei nenhuma forma de buscar automaticamente a cadeia de certificação e junta-la ao certificado do emitente.
Isso deverá ser feito de forma manual, mas fique atento para pegar a cadeia correta e coloca-los em sequencia logo abaixo dos certificados do emitente
no arquivo cert.pem.
 
Na versão em "desenvolvimento" há um método para fazer isso (juntar a cadeia de certificados com o certificado co emitente, mas na versão que você está usando não.

Outra coisa, eu recomendo que você faça testes no seu sistema usando a versão em "desenvolvimento" e utilizando o composer para isso pois aquela  será a próxima a ser disponibilizada.

Abraço
Roberto

Walber Sales

unread,
Mar 1, 2015, 9:14:31 PM3/1/15
to nfe...@googlegroups.com
Olá Mestre,


Pesquisando na net (http://nfe.sef.sc.gov.br/) diz o seguinte.

"Protocolo SSL e TLS
Os Servidores do Serpro (Ambiente Nacional) estão bloqueando por
questões de FALHA de segurança o protocolo SSL v2.
As aplicações que tiverem utilizando o Protocolo SSL v2, recebem TIME
OUT na tentativa de conexão com o Serpro.
A solicitação é a migração e uso do protocolo TLS.
O protocolo SSL v3 ainda esta sendo suportado, mas o ideal é utilizar
o mais breve possível o protocolo TLS, tendo em vista que em breve, a
área de segurança, pretende desligar o SSL v3 nos servidores do
Serpro."

Dizem que GO também adotou.
E o retorno da API é exatamente o mesmo para GO, conforma abaixo.

name lookup timed out0

<?xml version="1.0" encoding="utf-8"?><soap12:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:Header><nfeCabecMsg
xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2"><cUF>52</cUF><versaoDados>3.10</versaoDados></nfeCabecMsg></soap12:Header><soap12:Body><nfeDadosMsg
xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2"><consStatServ
xmlns="http://www.portalfiscal.inf.br/nfe"
versao="3.10"><tpAmb>2</tpAmb><cUF>52</cUF><xServ>STATUS</xServ></consStatServ></nfeDadosMsg></soap12:Body></soap12:Envelope>

URL=https://homolog.sefaz.go.gov.br/nfe/services/v2/NfeStatusServico2
Content type=
Http Code=0
Header Size=0
Request Size=0
Filetime=-1
SSL Verify Result=0
Redirect Count=0
Total Time=0
Namelookup=0
Connect Time=0
Pretransfer Time=0
Size Upload=0
Size Download=0
Speed Download=0
Speed Upload=0
Download Content Length=0
Upload Content Length=0
..
..
..

Para tentar usar TLS (chute) editei o ldap.conf e inseri as linhas abaixo

TLS_REQCERT never
TLS_CACERT /var/www/cadastros/nfefiles/17284025000167/certs/17284025000167_certKEY.pem

reiniciei o serviço /etc/init.d/apache2 restart e nada....

O caminho seia este?

Se tiver alguém no grupo que esta usando a API para a SEFAZ GO,
favor dar um HELP.


Detalhe: Em Produção retorna normalmente o status na versão 3.10

Tempo Medio de Resposta : 1 s
Verificado em : 01/03/2015 22:28:28
Ambiente: 1 - Produção cUF 52

Att:

Walber Sales




>Eu conseguia normalmente em homologação, inclusive quando houve as >mudanças eu que iniciei um start com o Roberto. Tudo funcionava ok.

>Logo, parou. Já havia mandado um email essa semana pra entender os
>possíveis problemas mais o sefaz não me retornou ainda.

>Se conseguir sucesso, favor me informar, se eu conseguir o farei também.

>Abraços.

>Leonardo Miranda


Em 26 de fevereiro de 2015 08:08, Roberto Machado
<linu...@gmail.com> escreveu:

Roberto Machado

unread,
Mar 2, 2015, 6:31:37 AM3/2/15
to nfe...@googlegroups.com
Walber;

O que tem que ser alterado esta na função SOAP da classe, porém em testes aqui também estou com dificuldades para conectar. Vou continuar testando mas por enquanto só obtenho "TIMEOUT"

O que poderia ser feito esta abaixo

//curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //TLSv1
//curl_setopt($oCurl, CURLOPT_SSLVERSION, 2); //SSLv2
//curl_setopt($oCurl, CURLOPT_SSLVERSION, 3); //SSLv3
//curl_setopt($oCurl, CURLOPT_SSLVERSION, 4); //TLSv1.0
//curl_setopt($oCurl, CURLOPT_SSLVERSION, 5); //TLSv1.1
//curl_setopt($oCurl, CURLOPT_SSLVERSION, 6); //TLSv1.2

Essas são as configurações de segurança do cURL nós estamos usando atualmente "SSLV3" mas isso pode ser mudado para outras opções. 
Por exemplo em SP funcionam, SSLv3, TLSv1.0, TLSv1.1 e TLSv1.2.

Vou fazer outros testes ao longo do dia e se tiver algum sucesso por favor me informe.

Roberto

Roberto Machado

unread,
Mar 2, 2015, 6:36:34 AM3/2/15
to nfe...@googlegroups.com
Para SC o sistema responde com SSLv3 e com TLSv1.0 apenas. Nos demais protocolos "Protocolo não SUPORTADO"

Roberto

Roberto Machado

unread,
Mar 2, 2015, 8:19:56 AM3/2/15
to nfe...@googlegroups.com
Walber;

Em principio o comando "curl_setopt($oCurl, CURLOPT_SSLVERSION, 3);" poderia ser comentado pois o PHP analisa o "HELLO" do servidor e usa a encriptação mais apropriada sozinho.

Isso funciona para todos os autorizadores, mas em GO (homologação) não !!! 
Só dá "timeout".

Acredito que o problema seja com eles. Se você tiver o emissor gratuito verifique se GO  (homologação) responde para ele, se responder então teremos um problema maior.

Roberto

Walber Sales

unread,
Mar 2, 2015, 9:57:57 AM3/2/15
to nfe...@googlegroups.com
Mestre Roberto,

Algumas pessoas acham que o 'Joaquim Barbosa' seria um bom presidente
do Brasil.
Para mim seria você.

Consigo retorno com seguintes protocolos
curl_setopt($oCurl, CURLOPT_SSLVERSION, 4); //TLSv1.0
curl_setopt($oCurl, CURLOPT_SSLVERSION, 5); //TLSv1.1
curl_setopt($oCurl, CURLOPT_SSLVERSION, 6); //TLSv1.2

Você é o KARA!

Grande abraço,

Walber Sales

Roberto Machado

unread,
Mar 2, 2015, 10:55:43 AM3/2/15
to nfe...@googlegroups.com
E tem outra novidade no caso de GO.
Eles somente reconhecem os certificados de quem está homologado por eles.
Ou seja eu não consigo mais testar por aqui, pelo menos em homologação.

Roberto

Roberto Machado

unread,
Mar 2, 2015, 11:54:43 AM3/2/15
to nfe...@googlegroups.com
Walber;

Não sei por que cargas dágua meu PHP estava "entupido"  ou minha maquina tinha algum problema com o DNS !!! removi e reinstalei o PHP e reiniciei a maquina e "voila" ... conexão com GO homologação e com o //curl_setopt($oCurl, CURLOPT_SSLVERSION, 4); //TLSv1.0 Comentado, ou seja, sem estabelecer qual deveria ser o protocolo.

A unica coisa diferente de outros autorizadores, pelo que vejo, são os cookies  

Retorno do soapDebug :
<?xml version="1.0" encoding="utf-8"?><soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:Header><nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2"><cUF>52</cUF><versaoDados>3.10</versaoDados></nfeCabecMsg></soap12:Header><soap12:Body><nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2"><consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10"><tpAmb>2</tpAmb><cUF>52</cUF><xServ>STATUS</xServ></consStatServ></nfeDadosMsg></soap12:Body></soap12:Envelope>

URL=
https://homolog.sefaz.go.gov.br/nfe/services/v2/NfeStatusServico2
CONTENT_TYPE=application/soap+xml;charset=UTF-8
REDIRECT_URL=
PRIMARY_IP=201.48.19.22
LOCAL_IP=192.168.0.21

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)/JBossWeb-2.0
Content-Type: application/soap+xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 02 Mar 2015 16:42:47 GMT
Set-Cookie: BIGipServer~LTM~pool_nfe_homolog_http=rd1o00000000000000000000ffff0a06007do80; path=/
Set-Cookie: f5avrbbbbbbbbbbbbbbbb=HINPJBEBKFMJDAPKLMIFJABMNIANBGBGJDPKCLFHONMDAFFPEGCLHNMIFLNACIABMCCFCPHPAPEDPDOJLJCICHGLHJMIPOOEGNDIIJPCGHNHMDKMEBALPMDGIIGKAHMB; HttpOnly; secure

<env:Envelope xmlns:env='http://www.w3.org/2003/05/soap-envelope'><env:Header></env:Header><env:Body><nfeStatusServicoNF2Result xmlns='http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2'><retConsStatServ versao='3.10' xmlns='http://www.portalfiscal.inf.br/nfe' xmlns:ns2='http://www.w3.org/2000/09/xmldsig#'><tpAmb>2</tpAmb><verAplic>GO3.0</verAplic><cStat>107</cStat><xMotivo>Serviço em operação</xMotivo><cUF>52</cUF><dhRecbto>2015-03-02T13:42:47-03:00</dhRecbto><tMed>1</tMed><dhRetorno>2015-03-02T13:42:47-03:00</dhRetorno><xObs>Aguarde 3 minutos para a realização de uma nova consulta.</xObs></retConsStatServ></nfeStatusServicoNF2Result></env:Body></env:Envelope>

Array ( [bStat] => 1 [versao] => 3.10 [cStat] => 107 [verAplic] => GO3.0 [xMotivo] => Serviço em operação [dhRecbto] => 2015-03-02T13:42:47-03:00 [tMed] => 1 [cUF] => 52 ) 


Roberto

Walber Sales

unread,
Mar 2, 2015, 2:20:50 PM3/2/15
to nfe...@googlegroups.com
Mestre Roberto,

Agora no momento, consigo testes homologação apenas com o
CURLOPT_SSLVERSION, 4), o que é um alívio.
Restante é time-out

Devem (SEFAZ) estar meXendo, só pode!

Abs,

Walber Sales

Roberto Machado

unread,
Mar 2, 2015, 2:26:59 PM3/2/15
to nfe...@googlegroups.com
Walber,

Tente comentar essa linha, que o php deve reconhecer o protocolo correto estou fazendo isso,
pois vai ficar muito louco se alguém usar o mesmo servidor para vários autorizadores com protocolos diferentes.

Roberto

Walber Sales

unread,
Mar 3, 2015, 1:19:02 AM3/3/15
to nfe...@googlegroups.com
Olá Mestre,

Realmente vai ficar 'muito louco' , estou pensando em até colocar o
tipo de protocolo nos parametros do ERP para configurar por
cliente/UF.
Fiz os testes e o retorno é:


Testes efetuados para GO com protocolo no formato:

1) curl_setopt($oCurl, CURLOPT_SSLVERSION, 4);

Consigo obter sucesso, mas como o timeing atual do ERP no loop é 15 s
para o retorno com numero do recibo, sempre é retornado 105, lote em
processamento.
Em MG este mesmo tempo é suficiente. O resultado é:

105 [xMotivo] => Lote em processamento
URL=https://homolog.sefaz.go.gov.br/nfe/services/v2/NfeAutorizacao
Content type=application/soap+xml;charset=UTF-8
Http Code=200
Header Size=572
Request Size=304
Filetime=-1
SSL Verify Result=19
Redirect Count=0
Total Time=0.647902
Namelookup=3.7E-5
Connect Time=0.023382
Pretransfer Time=0.221983
Size Upload=7054
Size Download=594
Speed Download=916
Speed Upload=10887
Download Content Length=0
Upload Content Length=7054
Start Transfer Time=0.252003
Redirect Time=0
Certinfo=
<env:Envelope xmlns:env='http://www.w3.org/2003/05/soap-envelope'><env:Header></env:Header><env:Body><nfeAutorizacaoLoteResult
xmlns='http://www.portalfiscal.inf.br/nfe/wsdl/NfeAutorizacao'><retEnviNFe
versao='3.10' xmlns='http://www.portalfiscal.inf.br/nfe'
xmlns:ns2='http://www.w3.org/2000/09/xmldsig#'><tpAmb>2</tpAmb><verAplic>GO3.0</verAplic><cStat>103</cStat><xMotivo>Lote
recebido com sucesso</xMotivo><cUF>52</cUF><dhRecbto>2015-03-03T02:35:55-03:00</dhRecbto><infRec><nRec>521000010257315</nRec><tMed>2</tMed></infRec></retEnviNFe></nfeAutorizacaoLoteResult></env:Body></env:Envelope>


Resumo teste modo curl_setopt($oCurl, CURLOPT_SSLVERSION, 4); :

a)) Consigo enviar a NFe com sucesso mas ainda continua dando muito time out.
b) Vou ter que aumentar meu timing para o retorno assincrono depois de
obter o numero do recibo.
Pois em 15 segundos, sempre retorna o 105 de lote em processamento.
Em testes com MG o loop para retorno com o recibo em 15 segundos é suficente




2) curl_setopt($oCurl, CURLOPT_SSLVERSION, 3);

foram 100% error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert
handshake failure0

Debug:

URL=https://homolog.sefaz.go.gov.br/nfe/services/v2/NfeAutorizacao
Content type=
Http Code=0
Header Size=0
Request Size=0
Filetime=-1
SSL Verify Result=0
Redirect Count=0
Total Time=0
Namelookup=0
Connect Time=0
Pretransfer Time=0
Size Upload=0
Size Download=0
Speed Download=0
Speed Upload=0
Download Content Length=0
Upload Content Length=0
Start Transfer Time=0
Redirect Time=0
Certinfo=


Resumo: com mod 3 (100% sem conexão)


Vou continuar testando com os demais protocolos, se em GO eu conseguir
apenas no ,4 , colocarei nos parametros no ERP para configurar por
cliente./UF




Grande abraço,


Walber Sales

Walber Sales

unread,
Mar 4, 2015, 1:03:12 PM3/4/15
to nfe...@googlegroups.com
Olá Mestre Roberto,

Se a moda do Brasil pega geral, vão liberar o soft apenas de ' chegado$'
Seria o "protocolão"
caso contrário erro 999 e sem retorno de suportes.
No caso do protocolo de comunicação , testei os estados que emitimos e
todos aceitaram
curl_setopt($oCurl, CURLOPT_SSLVERSION, 4);
Então deixarei este como default, o que você acha ?
E no GO funciona intermitente. Apenas quando quer!

Att:

Walber Sales

Roberto Machado

unread,
Mar 4, 2015, 1:09:55 PM3/4/15
to nfe...@googlegroups.com
Walber; 

Como eu já disse "comente" esse set, deixe sem nada, que o php 5.4 ou maior, descobre qual é o protocolo correto e usa.

Hoje estão com SSLv3, alguns já estão passando para TLSv1.00 mas já existem TLSv1.10 e TLSv1.20 então deixe por conta do próprio PHP estabelecer o protocolo.

Podem ocorrer casos em que o servidor seja tão mal configurado que no "handshake" não diga que língua ele fale, mas isso é pra quando ocorrer.

Roberto 

Walber Sales

unread,
Mar 4, 2015, 1:16:06 PM3/4/15
to nfe...@googlegroups.com
Olá Mestre,

Agora que entendi o // coment
È para não existir aquela linha , ok!
Existem alguns servidores de clientes que estão com PHP 5.3, no caso
tem que deixar a linha não comentada? Serve apenas para 5.4+ ?

Att:

Walber Sales

Roberto Leite Machado

unread,
Mar 4, 2015, 1:19:20 PM3/4/15
to nfe...@googlegroups.com
Vou modificar a API e comentar esse comando ("//") então caso você atualize vai estar "comentado".

Faz tempo que não uso o 5.3, então você terá que testar.

Aqui estou usando o PHP 5.6.

Roberto

Walber Sales

unread,
Mar 4, 2015, 1:33:31 PM3/4/15
to nfe...@googlegroups.com
Olá Mestre,

Comentei com a 5.3 e ficou ok.
blz!

Att:

Walber Sales


Em 4 de março de 2015 15:19, Roberto Leite Machado
<roberto...@superig.com.br> escreveu:

Roberto Leite Machado

unread,
Mar 4, 2015, 1:41:32 PM3/4/15
to nfe...@googlegroups.com
Falou !!!

Leonardo Miranda

unread,
Mar 5, 2015, 11:43:19 AM3/5/15
to nfe...@googlegroups.com
Thread do Século.

Vai ajudar muitos que possam passar por problemas de comunicação usando php 5.4 <

Em 4 de março de 2015 15:41, Roberto Leite Machado <roberto...@superig.com.br> escreveu:
Falou !!!

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@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 no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Leonardo Miranda
Service Desk - http://srvdesk.com.br
LinuxGeek - http://linuxgeek.com.br

Membro:
  Associação Software Livre de Goiás
  Projeto Software Livre de Goiás
  Robótica Livre de Goiás
  Games Livres Brasil
  Slackware Goiás
Reply all
Reply to author
Forward
0 new messages