Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3122 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado (editado)

Bom dia, estou com problema no provedor FISSLEX na consulta da situação do lote do rps, faço o envio do lote normalmente mas ao realizar a consulta do lote retorna o erro abaixo.

<?xml version="1.0" encoding="utf-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">    <SOAP-ENV:Body>        <WS_ConsultaLoteRps.ExecuteResponse xmlns="FISS-LEX">            <Consultarloterpsresposta xmlns="FISS-LEX"><ListaNfse></ListaNfse></Consultarloterpsresposta>            <Listamensagemretorno xmlns="FISS-LEX">                <tcMensagemRetorno xmlns="">                    <Codigo>E45</Codigo>                    <Mensagem>CNPJ não encontrado na base de dados</Mensagem>                    <Correcao>Confira o numero do CNPJ informado. Caso esteja correto, o prestador não está inscrito no município.</Correcao>                </tcMensagemRetorno>            </Listamensagemretorno>        </WS_ConsultaLoteRps.ExecuteResponse>    </SOAP-ENV:Body></SOAP-ENV:Envelope>

Obs: o erro não ocorre na versão do trunk anterior

 

Editado por marciotga

Atenciosamente,

Márcio Lopes

Analista de Sistemas

  • Membros Pro
Postado (editado)
Resposta da FISSLEX para possível solução.
 
Citar

 

Márcio, no seu componente de conexão https, verifique se vc está utilizando TLSv1.0
desde meados do ano passado, alteramos nosso conector https para funcionar com o TLSv1.0 e TLSv1.2, pois se tornou um padrão obrigatório nos navegadores atuais
pode ser que ao consumir o webservice, o seu componente de conexão está tentando utilizar o TLSv1.2 por default, se estiver, esse está sendo o problema.
 
pode ser que eles tratem a conexão por método e especificamente na consulta lote esteja utilizando de uma forma diferente a conexão pelo SoapUI o seu lote está retornando normalmente

 

 
Editado por marciotga

Atenciosamente,

Márcio Lopes

Analista de Sistemas

  • Membros Pro
Postado

Boa tarde Italo,

Sim configurei, tanto que mandei o XML para eles e com os testes deles funcionou conforme imagem em anexo, não seria alguma coisa na conexão SSL ?

fisslex.png

Atenciosamente,

Márcio Lopes

Analista de Sistemas

  • Consultores
Postado

Márcio,

Você disse que o envio esta ocorrendo normalmente sendo assim não existe nenhum problema na conexão, concorda?

Ao realizar a consulta é informado o CNPJ e a Inscrição Municipal a principio devemos informar somente os dígitos.

Será que no cadastro do provedor essas informações não estão formatadas com pontos e traços?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Então, estou setando os dados do emitente sem formatação, mas estranho é que eu mandei o arquivo para ele e conforme um teste que fizeram na ferramenta "SoapUI" retornou a NFSe.
 

  with NFSe.Configuracoes.Geral.emitente do
  begin
    CNPJ := SomenteNumeros(FQryCfg.FieldByName('CGC').AsString);
    InscMun := SomenteNumeros(FQryCfg.FieldByName('INSCRICAOMUNICIPAL').AsString);
    RazSocial := FQryCfg.FieldByName('NOME').AsString;
    // WebUser := Trim(fqryCfg.FieldByName('USERNAMENFSE').AsString);
    // WebSenha := Trim(fqryCfg.FieldByName('PASSWORDNFSE').AsString);
    // WebFraseSecr
  end;

 

Atenciosamente,

Márcio Lopes

Analista de Sistemas

  • Membros Pro
Postado (editado)

Fiz o teste no SoapUI usando o exemplo ele retornou certinho, mas observando o Fisslex.ini tem umas diferenças.

Teste Fisslex.jpg

Editado por marciotga

Atenciosamente,

Márcio Lopes

Analista de Sistemas

  • Membros Pro
Postado

Italo estou com um erro na hora de compilar os pacotes.

C:\ProjetoACBrTrunk2\Fontes\ACBrDFe\ACBrDFeCapicomDelphiSoap.pas(98) Error: E2003 Undeclared identifier: 'UseCertificate'
C:\ProjetoACBrTrunk2\Fontes\ACBrDFe\ACBrDFeCapicomDelphiSoap.pas(106) Error: E2003 Undeclared identifier: 'UseCertificate'
ACBr_DFeComum.dpk(46) Fatal: F2063 Could not compile used unit '..\..\..\Fontes\ACBrDFe\ACBrDFeSSL.pas'
Compilation failure
Erro ao compilar o pacote "ACBr_DFeComum.dpk".

 

Atenciosamente,

Márcio Lopes

Analista de Sistemas

  • Membros Pro
Postado (editado)

Italo, esta retornando o mesmo erro, acho que deve ser alguma coisa na formatação do XML porque se eu abro o arquivo gerado pelo ACBr pelo explorer e colo no SoapUI ele retorna certinho a NFSe. Será que não tem haver com os < > ?

XML gerado pelo ACBr

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><WS_ConsultaLoteRps.Execute xmlns="FISS-LEX"><Consultarloterpsenvio xmlns="FISS-LEX">&lt;Prestador&gt;&lt;Cnpj&gt;05906220000100&lt;/Cnpj&gt;&lt;InscricaoMunicipal&gt;11357&lt;/InscricaoMunicipal&gt;&lt;/Prestador&gt;&lt;Protocolo&gt;MjAxNjA0MTlfMDAwMDI2NjQ3OA==&lt;/Protocolo&gt;</Consultarloterpsenvio></WS_ConsultaLoteRps.Execute></SOAP-ENV:Body></SOAP-ENV:Envelope>

Copiado do internet explorere e colado no SoapUI

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:fiss="FISS-LEX" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<fiss:WS_ConsultaLoteRps.Execute>
<fiss:Consultarloterpsenvio><Prestador><Cnpj>05906220000100</Cnpj><InscricaoMunicipal>11357</InscricaoMunicipal></Prestador><Protocolo>MjAxNjA0MTlfMDAwMDI2NjQ3OA==</Protocolo></fiss:Consultarloterpsenvio>
</fiss:WS_ConsultaLoteRps.Execute>
</soapenv:Body>
</soapenv:Envelope>

Editado por marciotga

Atenciosamente,

Márcio Lopes

Analista de Sistemas

  • Membros Pro
Postado

Não sei se ajuda mas tem essas informações do SoapUI

Date Mon, 25 Apr 2016 22:53:23 GMT
Content-Length 2647
#status# HTTP/1.1 200 OK
Expires Thu, 01 Jan 1970 00:00:00 GMT
Content-Encoding gzip
Last-Modified Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie JSESSIONID=F7A5BA96ED18C9CAFFC2FD1985767098.worker3; Path=/fiss-lex/; HttpOnly
Content-Type text/xml;charset=utf-8
Server Apache-Coyote/1.1
pragma no-cache
Cache-Control max-age=0, no-cache, no-store, must-revalidate

 

Atenciosamente,

Márcio Lopes

Analista de Sistemas

  • Consultores
Postado

Boa noite Márcio,

Altere o valor da propriedade Dados de 1 para 0 no arquivo INI do provedor:

; 0 = False / 1 = True (se True então converte Cabeçalho e Dados para String)


(...)
Cabecalho=0
Dados=0

Faça novos testes.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado (editado)

Ítalo, fiz 2 ajustes para poder funcionar o metodo ConsultarLoteRps, não testei os outros.

1) FISSLEX.INI na sessão [ConsLote] e deixei conforme o exemplo da Fisslex e tambem mudei o valor da propriedade dados de 1 para 0 (cabeçalho e dados).

Antes
[ConsLote]
IncluiEncodingCab=0
IncluiEncodingDados=0
Texto1=<?xml version="1.0" encoding="UTF-8"?>
Texto2=<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Texto3=<SOAP-ENV:Body>
Texto4=<WS_ConsultaLoteRps.Execute xmlns="FISS-LEX">
Texto5=<Consultarloterpsenvio xmlns="FISS-LEX">%DadosMsg%</Consultarloterpsenvio>
Texto6=</WS_ConsultaLoteRps.Execute>
Texto7=</SOAP-ENV:Body>
Texto8=</SOAP-ENV:Envelope>

Depois

[ConsLote]
IncluiEncodingCab=0
IncluiEncodingDados=0
Texto1=<?xml version="1.0" encoding="UTF-8"?>
Texto2=<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fiss="FISS-LEX">
Texto3=<soapenv:Header/>
Texto4=<soapenv:Body>
Texto5=<fiss:WS_ConsultaLoteRps.Execute>
Texto6=<fiss:Consultarloterpsenvio>%DadosMsg%</fiss:Consultarloterpsenvio>
Texto7=</fiss:WS_ConsultaLoteRps.Execute>
Texto8=</soapenv:Body>
Texto9=</soapenv:Envelope>

 

2) Outra alteração que fiz foi unit pnfsLerListaNFSe na linha 326, teria que ver se tem como resolver essa questão do case sensitive na função leitor.rExtrai().

Antes

    if not Nivel1 then
      Nivel1 := (leitor.rExtrai(1, 'listaNfse') <> '');

depois

    if not Nivel1 then
      Nivel1 := (leitor.rExtrai(1, 'listaNfse') <> '');
    if not Nivel1 then
      Nivel1 := (leitor.rExtrai(1, 'ListaNfse') <> '');

 

FISSLex.ini

pnfsLerListaNFSe.pas

Editado por marciotga

Atenciosamente,

Márcio Lopes

Analista de Sistemas

Postado (editado)

Bom dia,

Italo a cidade Barra do Bugres - MT hoje no ACBr esta configurado com WEBISS porém o provedor é FISSLEX, então é só mudar o arquivo cidades.ini de:

[5101704]
Nome=Barra do Bugres
UF=MT
Provedor=WebISS
NomeURL_H=barradobugresmt
NomeURL_P=barradobugresmt

para:

[5101704]
Nome=Barra do Bugres
UF=MT
Provedor=FISSLEX
NomeURL_H=barradobugres
NomeURL_P=barradobugres

Editado por Paulo José
Faltou conteudo
  • Consultores
Postado

Boa tarde Paulo,

A principio basta trocar o nome do provedor no arquivo Cidades.INI mas é preciso verificar se o novo provedor possui ou não uma URL de homologação / produção para a respectiva cidade.

Se sim é preciso incluir essas URLs no arquivo INI do respectivo provedor.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia,
tive que fazer algumas alterações para funcionar o ACBR na fiss-lex, há um problema no padrão de comunicação deles, para os serviços de envio(enviar lote ou cancelamento) ele usa a configuração FConfigXML.CabecalhoStr = True, porem para as consultas(situação, rps, etc) ele usa como False. Vi que na classe de configuração já havia as configurações CabecalhoStr para cada serviço(recepcionar, consultar, cancelar, etc.) porem não era utilizado então na classe de configuração alterei para preencher as configurações dos serviços trazendo como padrão o FConfigXML.CabecalhoStr assim não necessita essas configurações no INI e segue o padrão anterior:

ANTES:
  FConfigEnvelope.ConsNFSe_CabecalhoStr := FPIniParams.ReadBool('ConsNFSe', 'CabecalhoStr', False);
  FConfigEnvelope.ConsNFSe_DadosStr := FPIniParams.ReadBool('ConsNFSe', 'DadosStr', False);

DEPOIS:
  FConfigEnvelope.ConsNFSe_CabecalhoStr := FPIniParams.ReadBool('ConsNFSe', 'CabecalhoStr', FConfigXML.CabecalhoStr);
  FConfigEnvelope.ConsNFSe_DadosStr := FPIniParams.ReadBool('ConsNFSe', 'DadosStr', FConfigXML.DadosStr);

(para todos os serviços).
 

Na Classe do Webservices criei dois fields para que seja setado na definição dos dados as variáveis:

    FCabecalhoStr: Boolean;
    FDadosStr: Boolean;

Assim no método DefinirEnvelopeSoap ira usar esses fields da classe para parametrização:

ANTES:
  if FPConfiguracoesNFSe.Geral.ConfigXML.CabecalhoStr then
    CabMsg := StringReplace(StringReplace(CabMsg, '<', '&lt;', [rfReplaceAll]), '>', '&gt;', [rfReplaceAll]);

  DadosMsg := FPDadosMsg;
  if FPConfiguracoesNFSe.Geral.ConfigXML.DadosStr then
    DadosMsg := StringReplace(StringReplace(DadosMsg, '<', '&lt;', [rfReplaceAll]), '>', '&gt;', [rfReplaceAll]);

DEPOIS: 
  if FCabecalhoStr then
    CabMsg := StringReplace(StringReplace(CabMsg, '<', '&lt;', [rfReplaceAll]), '>', '&gt;', [rfReplaceAll]);

  DadosMsg := FPDadosMsg;
  if FDadosStr then
    DadosMsg := StringReplace(StringReplace(DadosMsg, '<', '&lt;', [rfReplaceAll]), '>', '&gt;', [rfReplaceAll]);

 

No método DefinirDadosMsg de cada serviço (envio, consulta, cancelamento)ira setar esses filds de parametrização, por ex. no TNFSeGerarLoteRPS.DefinirDadosMsg foi adicionado:
  FCabecalhoStr:= FPConfiguracoesNFSe.Geral.ConfigEnvelope.Recepcionar_CabecalhoStr;
  FDadosStr:= FPConfiguracoesNFSe.Geral.ConfigEnvelope.Recepcionar_DadosStr;

 

Na Classe LerListaNFSe inclui a tag de retorno no padrão da fiss-lex:
    //fiss-lex
    if not Nivel1 then
      Nivel1 := (leitor.rExtrai(1, 'WS_ConsultaNfsePorRps.ExecuteResponse') <> '');

Por fim editei o fisslex.ini para parametrizar de acordo com o serviço as configurações, conforme segue em anexo. Testei os serviços de envio, consulta e cancelamento e os mesmos comunicaram corretamente com o servidor demo da fiss-lex.
 


 

 

ACBrNFSeConfiguracoes.pas

ACBrNFSeWebServices.pas

pnfsConversao.pas

pnfsLerListaNFSe.pas

FISSLex.ini

  • Consultores
Postado

Boa tarde Tailan,

Muito obrigado pela contribuição. Tive que fazer alguns ajustes pois alguns dos seus fontes estavam desatualizados.

Já enviei para o repositório, favor atualizar os fontes e realizar novos testes.

Caso todas as funcionalidades agora estejam funcionando 100%, favor nos dar um retorno.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Este tópico foi criado há 3122 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.