Ir para conteúdo
  • Cadastre-se

dev botao

Cancelamento NFSe componente ACBrNFSeX


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

Recommended Posts

Bom dia, 

Estou tentando fazer o cancelamento de uma NFSe através do novo componente ACBrNFSeX, porém estou obtendo uma exception na parte de assinatura do XML.

image.png.9a1010c9cbe113fa2a2b06c051d5e961.png

A um tempo atrás criei um tópico e descobri que essa exception é controlada e só ocorre no Debug, penso que esse problema pode ser relacionado à alguma propriedade da classe TInfCancelamento que talvez não preenchi,

alguém pode me explanar quais são as propriedades obrigatórias desse objeto? E os respectivos valores que devem ser enviados.
 

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Gabriel,

Se executar sem estar debugando funciona?

Quanto as propriedades de TInfCancelamento são varias e depende do provedor que você esta usando, pois algumas são especificas para determinados provedores.

Outra coisa, quando deixamos de informar uma propriedade obrigatória o componente gera uma mensagem de erro acusando a falta da mesma.

Se isso não esta ocorrendo é porque você esta informando todas as informações necessárias.

Sempre faça testes com o programa exemplo.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

16 minutos atrás, Italo Giurizzato Junior disse:

Bom dia Gabriel,

Se executar sem estar debugando funciona?

Quanto as propriedades de TInfCancelamento são varias e depende do provedor que você esta usando, pois algumas são especificas para determinados provedores.

Outra coisa, quando deixamos de informar uma propriedade obrigatória o componente gera uma mensagem de erro acusando a falta da mesma.

Se isso não esta ocorrendo é porque você esta informando todas as informações necessárias.

Sempre faça testes com o programa exemplo.

Se executar debugando ele não cancela a nota fiscal da mesma forma, o provedor é Thema, cidade Santa Cruz do Sul.

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde Gabriel,

Acabei de fazer um teste usando o programa exemplo e veja o resultado:

Método Executado: CancelarNFSe
 
Parâmetros de Envio
Numero da NFSe: 29
Série da NFSe : 
 
Parâmetros de Retorno
Situação: 
Link    : 
Sucesso : False
 
Retorno do Pedido de Cancelamento:
Situação : 
Data/Hora: 30/12/1899
Mensagem : 
Sucesso  : 
Link     : 
 
Erro(s):
Código  : E78
Mensagem: E78 - Número da NFS-e inexistente na base de dados para o prestador de serviço pesquisado
Correção: 
---------

Para mim esta funcionando uma vez que informei um numero de NFS-e qualquer e o CNPJ do prestador configurado no programa exemplo não é dessa cidade.

Outra coisa importante, a configuração que estou usando:

Configuracao.jpgo valor de SSLType é LT_TLSv1_2

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia, encontrei o motivo de não executar o cancelamento corretamente no fonte ACBrDFeWinCrypt no:

if CryptExportKey( hRSAKey, hSessKey, PRIVATEKEYBLOB, 0, Nil, mBytesLen ) then  // Calcula mBytesLen

Ele está retornando como False e este é o motivo de estar ocorrendo a exeception controlada,  e também acredito ser o motivo de não estar ocorrendo o cancelamento das NFSe's.  O erro ocorre na função:

function TDFeWinCrypt.CalcHash(const AStream: TStream; const Digest: TSSLDgst; const Assina: Boolean): AnsiString;

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Gabriel,

Você viu a minha postagem anterior?

Note que o componente gerou o XML de pedido de cancelamento, enviou para o webservice do provedor e este retornou acusando que não encontrou o numero da nota para poder realizar o cancelamento da mesma.

Uma coisa é o componente gerar o XML de pedido de cancelamento, assinar se necessário (depende do provedor) enviar para o webservice e aguardar o retorno.

Outra coisa é o webservice analisar o pedido, executar a ação de cancelamento e retornar a informação que a nota foi ou não cancelada.

Que existem exeception controladas, isso existem, mas devemos ignorá-las e seguir em frente.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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