Ir para conteúdo
  • Cadastre-se

dev botao

ACBrNFSeX - Presidente Venceslau/SP


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 1120 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Ola boa tarde,

Estou refazendo a parte de transmissão da NFSe, e ja vou aproveitar e colocar o novo componente ACBrNFSeX.

Ate então NÃO estava utilizando o ACBrNFSe, usava um consumo direto ao webservice.

 

Bom levantei alguma informações:

Provedor : Assessor Publico

Cidade : Presidente Venceslau-SP

url para testes https://s1.asp.srv.br/issonline-homolog/servlet/anfse?wsdl

( alterei no ACBrNFSeXServicos.ini , na cidade correspondente , na linha HomRecepcionar= https://s1.asp.srv.br/issonline-homolog/servlet/anfse )

Link: https://s1.asp.srv.br/issonline-homolog

 

Usuário: 67049932000108

Senha: 123

Código do ISSQN (INSCRICAO): 90028

OBS: Nesta base, a tag ATIVIDADE deve ser informada com o valor 14.02(com ponto para separar o código da atividade). Na base de produção(Presidente Venceslau), é informado o código sem o ponto(1402).

 

Configurei certo no Programa Exemplo, nas primeiras tentativas deu erro de "senha", no caso , eu passei informado o MD5 da senha, portanto creio que houve a comunicação correta do webservice.

Apos corrigir, fiz nova tentativa e me retorna a seguinte msg:

Erro(s):
Código  : X999
Mensagem: SOAP-ENV:Client - An invalid XML character (Unicode: 0x7) was found in the element content of the document.
Correção: 

Anexado os xml de envio;

1-env-lot.xml 1-env-lot-soap.xml

Postado (editado)

bom dia,

Baixei a unit, e coloquei na pasta dos fontes/AcbrDFe/ACBeNFSeX/Provedores/

Fui no exemplo e removi a criptografia da senha, passando ela normal, com a troca da unit, ele realmente não deu erro de senha como apresentava anteriormente.

Mas mesmo assim apresenta o mesmo problema.

"Modo de Envio : Enviar Lote
Numero do Lote: 2
Data de Envio : 30/12/1899
Numero do Prot: 
Sucesso       : False
 
Erro(s):
Código  : X999
Mensagem: SOAP-ENV:Client - An invalid XML character (Unicode: 0x7) was found in the element content of the document.
Correção: 
---------"

Segue em anexo o "ini" da configuracao usado no programa exemplo.

 

PS : fiz o update do acbr inteiro e reinstalei para ver se era algo ref a isso, mas mesmo assim, obtém o mesmo retorno.

 

ACBrNFSeX_Exemplo.ini

Editado por Compusofts
Postado (editado)

Boa tarde,

Vou testar o que vc falou , apos o MD5 conerter para Hexa

--------------

ENTÃO, o inicio dos testes ao tentar efetuar a primeira "comunicação" acusou que a SENHA estava Errada. 

Mandei um email para o suporte e o mesmo me retornou essa imagem do manual

image_45375892041628628034844.thumb.png.17cb19374243a8b5b0797328f1fe610c.png

 

Após usar o MD5(senha), ai "parece" que validou a informação de login e senha, mas apresenta esse erro que informei.

Anexo ele acabou de me manda um exemplo do xml

EnvioNotaWebserviceUmaNota.xml

Editado por Compusofts
Postado

@edit

Fiz a conversao do MD5 para HEXA e mudou o erro pelo menos rs

 

Erro(s):
Código  : X999
Mensagem: SOAP-ENV:Client - Error reading nfse:Nfse.Execute
Correção: 
 

Vou tentar analisar o que pode ser

 

  • Curtir 1
Postado (editado)

Bom dia @Italo Giurizzato Junior,

Com o ultimo update, e as demais atualizacao do ACBrNFSeX, efetuei os teste novamente

Problema encontrado.

AssessorPublico.Provider

Senha deve ser em MD5 em hexadecimal e minusculo;

  with TACBrNFSeX(FPDFeOwner).Configuracoes.Geral do
  begin
    Result := '<nfse:Usuario>' + Emitente.WSUser + '</nfse:Usuario>' +
              '<nfse:Senha>' + LowerCase(StrToHex( MD5( Emitente.WSSenha ) )) + '</nfse:Senha>';
  end;

 

Adicionei no ACBrNFSeXConversao a funcao StrToHex ( o qual tem no pcnConversao, mas se eu adicionar ele na unit da erro em outra função ), entao joguei para essa unit.

function StrToHex(const S: String): String;
var I: Integer;
begin
  Result:= '';
  for I := 1 to length (S) do
    Result:= Result+IntToHex(ord(S[i]),2);
end;
 

resultando <nfse:Senha>202cb962ac59075b20134b07152d234b70</nfse:Senha>

No caso esta sendo gerado ERRADO, o correto seria <nfse:Senha>202cb962ac59075b964b07152d234b70</nfse:Senha>

 

em um determinado momento no meu sistema eu uso o MD5 , mas declarado dessa forma

Uses IdHashMessageDigest;

function TfrmACBrNFSe.MD5(Frase: String): String;
begin
  with TIdHashMessageDigest5.Create do
    try
      Result :=LowerCase( HashStringAsHex(Frase) );
    finally
      Free;
    end;
end;

E esse gera o resultado correto;

 

Fazendo gerar correto a criptografia do md5 ref a senha, a transmissão deu certo. Comunicou com o webservice e transmitiu a nota.

 

Editado por Compusofts
  • Curtir 1
Postado (editado)

Bom, segue em anexo as unit alteradas, verifica se são validas as alterações feitas.

ACBRNFSeXConversao.

- Removido uses Synacode;

- Adicionado uses IdHashMessageDigest;

- Adicionado funçao MD5

function MD5(Frase: String): String;
begin
  with TIdHashMessageDigest5.Create do
    try
      Result :=LowerCase( HashStringAsHex(Frase) );
    finally
      Free;
    end;
end;

AssessorPublico.Provider

with TACBrNFSeX(FPDFeOwner).Configuracoes.Geral do
  begin
    Result := '<nfse:Usuario>' + Emitente.WSUser + '</nfse:Usuario>' +
              '<nfse:Senha>' + MD5( Emitente.WSSenha ) + '</nfse:Senha>';
  end;

 

AssessorPublico.Provider.pas ACBrNFSeXConversao.pas

Editado por Compusofts
  • Curtir 1
Postado
42 minutos atrás, Italo Giurizzato Junior disse:

Boa tarde,

Essa unit IdHashMessageDigest é do Delphi, correto?

Ela esta presente e funciona da mesma forma desde o Delphi 7 até a versão mais nova do Delphi?

Boa tarde, creio que pertença sim ao delphi.
estou utilizando a versao Delphi 10.2.2 

Postado
14 horas atrás, Italo Giurizzato Junior disse:

É estranho ocorrer a diferença que você apontou.

A senha possui algum caractere especial, ou ela é formada por apenas letras (sem acentos e sem cedilha) e dígitos?

Então também achei estranho

mas se quiser testar no ambiente de homologação os dados abaixo

Usuário: 67049932000108

Senha: 123

Código do ISSQN (INSCRICAO): 90028

ela eh "simples" , nada de mais

faça a utilização dos md5 apontados e verá que apresentaram resultados diferentes

Postado

Boa tarde @Italo Giurizzato Junior

Referente ao retorno do Assessor Publico.

Estou fazendo os teste em homologação, e ao executar o envio, no retorno do webservice vem somente

"<Mensagem>3234</Mensagem>" , o qual esse numero seria o numero do protocolo.

Imagens anexadas.

O retorno vem como "sucesso" , mas nao alimenta os campos por exemplo ao tentar acessar

ACBrNFseX1.NotasFiscais.Items[0].NFSe.Protocolo; 

image.png

image.png

image.png

image.png

94-env-lot.xml 94-env-lot-soap.xml 94-rec.xml 94-rec-soap.xml 3521086704993200010856000000000017834-rps.xml

Postado
1 hora atrás, Italo Giurizzato Junior disse:

Bom dia,

Favor atualizar os fontes e faça novos testes.

Bom dia,
 

Atualizei os fontes, e fiz novos testes.
O qual agora vem o retorno no Response ( TNFSeEmiteResponse ).Protocolo a informação preenchida.

Com esse retorno consigo agora efetuar a

ResponseConsultaLote := ACBrNFSeX1.ConsultarLoteRps(Response.Protocolo, Response.Lote);

Em anexo segue os xml da consulta, parece ter algo "estranho" pois tem muita informacao "duplicada" nesses xml, nao entendi o porque.

Mesmo assim, ao tentar acessar a informação do Numero da nota por exemplo apos a consulta, ResponseConsultaLote.InfRetorno.NumeroNota , a informação esta zerada. Assim como as demais informacoes de Link, idnota...etc,

Basicamente não esta atribuindo as informacoes do retorno para as variaveis.

image.thumb.png.5a1939c7a72dab2c94f7f7a5622f980c.png

os xml começado com 94 = Envio ,  e 33296 = Consulta Lote Rps

33296-con-lot-soap.xml 33296-lista-nfse-con-lot.xml 33296-lista-nfse-con-lot-soap.xml 33296-con-lot.xml 94-env-lot.xml 94-env-lot-soap.xml 94-rec.xml 94-rec-soap.xml

Postado

 


Bom dia Italo.

Atualizei os fontes e fiz o teste

Debugando o fonte, na unit AssessorPublico.Proveder ao "TratarRetornoConsultaLoteRPS", 

Creio que esteja incorreto a informação, pois esta verificando ANodeArray, sendo o que foi atribuido anteriomente foi o ANode. ( print abaixo )

image.thumb.png.eb8c585b162630b59fc79082c1b5f1b2.png

Fiz a seguinte alteração

      ANode := ANode.Childrens.FindAnyNs('Mensagem');
      if not Assigned(ANode) then
      begin
        AErro := Response.Erros.New;
        AErro.Codigo := Cod203;
        AErro.Descricao := Desc203;
        Exit;
      end;

      ANode := ANode.Childrens.FindAnyNs('NFSE');
      if not Assigned(ANode) then
      begin
        AErro := Response.Erros.New;
        AErro.Codigo := Cod203;
        AErro.Descricao := Desc203;
        Exit;
      end;

 

Mas mesmo assim, após a consulta, as informações do retorno não esta indo para os campos do Response da consulta

 

image.thumb.png.1537867a40637088afb6d2437d7304a6.png

image.thumb.png.01564e99b46a3670f1cc2b7f4b27c52d.png

 

e também nao esta atualizando os campos dentro do componente por exemplo

ACBrNFseX1.NotasFiscais.Items[0].NFSe.Protocolo;

ACBrNFSeX1.NotasFiscais.Items[0].NFSe.InfID.ID;

 

33300-con-lot.xml 33300-con-lot-soap.xml 33300-lista-nfse-con-lot.xml 33300-lista-nfse-con-lot-soap.xml 96-env-lot.xml 96-env-lot-soap.xml 96-rec.xml 96-rec-soap.xml

  • Este tópico foi criado há 1120 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.