Ir para conteúdo
  • Cadastre-se

dev botao

Consulta Lote RPS Sorocaba DSF Abrasf


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

Recommended Posts

Postado

Pessoal, boa noite.

Já estou a algumas semanas tentando resolver um problema de consulta de lote de RPS fora do projeto ACBR e sempre recebo o retorno de "Arquivo enviado com erro na assinatura. / Acerte a assinatura do arquivo."
Eu já consegui enviar o lote e receber o protocolo e utilizo o mesmo método para assinar o arquivo xml de consulta porém ele sempre retorna com o erro acima.

Peço por gentileza que analisem o arquivo e se possível me auxiliem na correção deste problema pois já recorri ao suporte da DSF e ele não conseguiu me ajudar.

Desde já agradeço pela colaboração.

Segue o arquivo de consulta.


LOTE_0000038716.xml

  • Solution
Postado

Senhores, bom dia.
@Renato Rubinho obrigado por tentar ajudar.

Enfim consegui resolver o problema da consulta.

Deixo abaixo a solução adotada para se possível ajudar outros que estão passando pelas mesmas dificuldades.

Dicas para criação do lote de RPS:


Problema 1 - O objeto que você envia não é o que você serializa:
- Quando utiliza em C# as funções importadas pelo WSDL, o método para enviar recebe um objeto do tipo "RecepcionarLoteRpsEnviarLoteRpsEnvio" mas para a criação do arquivo XML devemos utilizar o objeto dp tipo "RecepcionarLoteRps". Dentro dele existe o atributo EnviarLoteRpsEnvio do tipo RecepcionarLoteRpsEnviarLoteRpsEnvio então, crie um objeto do tipo RecepcionarLoteRps, de new no objteto EnviarLoteRpsEnvio, serialize seu objeto do tipo RecepcionarLoteRps, assine este objeto, (Não precisa assinar os RPS, somente o Lote), e ao enviar para a prefeitura envie o EnviarLoteRpsEnvio.

Problema 2 - Ao deserializar o objeto, a assinatura não é carregada:
- Adicione no Reference.cs da classe gerada na importação do WSDL, acima do atributo Signature, o namespace: [System.Xml.Serialization.XmlElementAttribute(Namespace = "http://www.w3.org/2000/09/xmldsig#")]

 

Problema 3 - A consulta do lote enviado não funciona com o objeto do tipo ConsultarLoteRps:

-Seguindo a mesma ideia de enviar o Lote, tentei criar o objeto para fazer a consulta porém, sempre recebia o erro "Arquivo enviado com erro na assinatura. / Acerte a assinatura do arquivo.", para corrigir o erro, criei no Reference.cs uma classe com o nome "ConsultarLoteRpsEnvio", esta classe foi criada contendo os mesmo atributos da classe "ConsultarLoteRpsConsultarLoteRpsEnvio". Em seguida eu alterei os metodos "ConsultarLoteRps", "ConsultarLoteRpsAsync(ConsultarLoteRpsEnvio ConsultarLoteRpsEnvio)" e sua sobrecarga "ConsultarLoteRpsAsync(ConsultarLoteRpsEnvio ConsultarLoteRpsEnvio, object userState)". Desta forma a consulta funcionou.
Não esqueça de adicionar o namespace sobre o Signature:

 [System.Xml.Serialization.XmlElementAttribute(Namespace = "http://www.w3.org/2000/09/xmldsig#")]
 public SignatureType Signature

 

Não sei se existe outra solução mas percebi que não dá para utilizar o WSDL sem alterações e ter que alterar uma classe gerada pelo WSDL foi novidade para mim.

 

Obrigado pelo espaço aqui no Fórum.

 

Eduardo Feu


 

  • Curtir 1
  • Este tópico foi criado há 822 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.