Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Solution
Postado

Olá tudo bem!

O cancelamento de NFS-e do profedor SoftPlan funcionou mas foi preciso fazer alguns ajustes porque alguns atributos conflitaram com o serviço de gerar token.

Coloquei os três pontos no mesmo tópico, não sei se era obrigatório criar um tópico para cada um.

 

  •  Estava com problemas com a identificação do tomador na unit SoftPlan.GravarXML, era necessário remover os caracteres especiais e deixar apenas números.
 NFSeNode.AppendChild(AddNode(tcStr, '#1', 'identificacaoTomador', 0, 20, 1, OnlyNumber(NFSe.Tomador.IdentificacaoTomador.Cnpj), ''));

 

  • O atributo ChaveAutoriz esta sendo utilizado para definir o numeroAEDF no xml de envio e de cancelamento também e conflitava com o serviço de gerar token.

Esse mesmo atributo foi utilizado para salvar o client_secret que é utilizado para gerar o token. Então para evitar conflitos eu fiz alterações no serviço de gerar token para utilizar o atributo Emitente.WSFraseSecr ao invés do Emitente.WSChaveAutoriz.

Então em procedure TACBrNFSeProviderSoftPlan.PrepararGerarToken(Response: TNFSeGerarTokenResponse) aonde define a URL foi alterado

de:
	FpPath := FpPath + '&client_secret=' + Emitente.WSChaveAutoriz;
para:
	FpPath := FpPath + '&client_secret=' + Emitente.WSFraseSecr;

E em procedure TACBrNFSeXWebserviceSoftPlan.SetHeaders(aHeaderReq: THTTPHeader) aonde define o cabeçalho do request foi alterado

de:
  with TConfiguracoesNFSe(FPConfiguracoes).Geral do
  	Auth := Emitente.WSChaveAcesso + ':' + Emitente.WSChaveAutoriz;
para:
  with TConfiguracoesNFSe(FPConfiguracoes).Geral do
    Auth := Emitente.WSChaveAcesso + ':' + Emitente.WSFraseSecr;

 

  • O número da nota estava ficando errado quando gerava a nfse.

Estava copiando o numero do rps ao invés do numero da nota no xml de retorno. Então alterei para copiar da tag 'numeroSerie' ao invés da tag 'identificacao';

Então em procedure TACBrNFSeProviderSoftPlan.TratarRetornoEmitir(Response: TNFSeEmiteResponse) foi alterado

de:
    with Response do
    begin
        ...
        NumeroNota := ObterConteudoTag(ANode.Childrens.FindAnyNs('identificacao'), tcStr);
    end;

para:
    with Response do
    begin
        ...
        NumeroNota := ObterConteudoTag(ANode.Childrens.FindAnyNs('numeroSerie'), tcStr);
    end;  

 

Muito Obrigado

SoftPlan.GravarXml.pas SoftPlan.Provider.pas

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