Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado
1 minuto atrás, Juliomar Marchetti disse:

como não emito para esse provedor e não tenho software pra emissão de nfs-e não seilhe dizer mas como não irá funcionar para Lazarus não é possível aceitar o código anexo

Por acaso, vc sabe de alguma forma de dar um HTMP/POST sem usar o INDY? se tiver uma outra alternativa, conseguimos fazer a troca.

Postado
3 minutos atrás, Daniel Simoes disse:

Veja a ACBrSocket.... Você pode ver exemplos de POST, GET usando a ACBrSocket em componentes da aba TCP como ACBrCEP, ACBrIBGE, ACBrConsultaCNPJ, etc

Obg Daniel, vou dar uma olhada, mas já estava seguindo um exemplo que encontrei aqui no fórum mesmo com o uso do httpsend da synalist que já está sendo usado pelo ACBr, oque vc acha?

  • Membro Pro Verificado
Postado

Filipe, 

Acredito que o que o Daniel falou do ACBrSocket é a melhor solução, fica fácil para implementar.

Vou conseguir "mexer" nisso a tarde, se conseguir evoluir me comunique.

att

  • Curtir 1

Elias Jakubowski

LS Technologies - www.lstech.com.br

Postado

Bom dia pessoal.

Estou fazendo desta forma:

var
  Post: TStringStream;
  ACBrHTTP: TACBrHTTP;
begin
  Post := TStringStream.Create('');
  Post.WriteString( 'login=' + EncodeURLElement(FPConfiguracoesNFSe.Geral.UserWeb) + '&' );
  Post.WriteString( 'senha=' + EncodeURLElement(FPConfiguracoesNFSe.Geral.SenhaWeb) + '&' );
  Post.WriteString( 'f1=' + aFile );

  ACBrHTTP := TACBrHTTP.Create(nil);

  ACBrHTTP.HTTPSend.Clear;
  Post.Position:= 0;
  ACBrHTTP.HttpSend.Document.Position:= 0;
  ACBrHTTP.HttpSend.Document.CopyFrom(Post, Post.Size);
  ACBrHTTP.HTTPSend.MimeType := 'application/x-www-form-urlencoded';
  ACBrHTTP.HTTPSend.Cookies.Add('flag=1');
  ACBrHTTP.HTTPPost( URL );
end;

Consegui fazer o login no webservice, mas informa que não pode carregar o arquivo.

  • Membro Pro Verificado
Postado

Bom dia,

Mas onde você está carregando ou setando o arquivo?

Acho que é isso que falta.

att

Elias Jakubowski

LS Technologies - www.lstech.com.br

Postado
45 minutos atrás, Daniel Simoes disse:

Em TACBrConsultaCNPJ.Consulta , da Unit ACBrConsultaCNPJ.pas, você pode ver um exemplo de POST, usando a ACBrSocket

Certo @Daniel Simoes estou fazendo conforme a unit que ACBrConsultaCNPJ.pas, mas não está funcionando, o webservice informa que não foi possível localizar o arquivo

Postado
50 minutos atrás, Daniel Simoes disse:

Porque você precisou usar um TFileStream ?


  FileStream := TFileStream.Create( aFile, fmOpenRead );

Aparentemente poderia ser um TMemoryStream ou TStringStream

Não tem nenhum motivo especifico. se houver problema posso mudar.

  • Membro Pro Verificado
Postado

Bom dia,

Ítalo/Daniel.

As fontes postadas pelo Filipe estão de acordo. 

Vocês conseguem adicionar no versionador?

att

Elias Jakubowski

LS Technologies - www.lstech.com.br

  • Fundadores
Postado

A modificação não parece integrada com o ACBrDFe... Observe que já existe o método TDFeWebService.EnviarDados... ele já faz o POST, usando a tecnologia que o usuário escolheu (WinLNet, WinHttp, OpenSSL) não seria apenas o caso de sobrescrever a rotina que gera o conteúdo do Documento (FPEnvelopeSoap) e deixar a "EnviarDados", já fazer o trabalho dela ?

De uma olhada em: DefinirServicoEAction, e DefinirDadosMsg;

O problema dessa implementação.. é que ela não respeitará a configuração em TACBrDFeSSL, definida para comunicação HTTPS... pois ACBrSocket, sempre usará OpenSSL

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
23 minutos atrás, Daniel Simoes disse:

A modificação não parece integrada com o ACBrDFe... Observe que já existe o método TDFeWebService.EnviarDados... ele já faz o POST, usando a tecnologia que o usuário escolheu (WinLNet, WinHttp, OpenSSL) não seria apenas o caso de sobrescrever a rotina que gera o conteúdo do Documento (FPEnvelopeSoap) e deixar a "EnviarDados", já fazer o trabalho dela ?

De uma olhada em: DefinirServicoEAction, e DefinirDadosMsg;

O problema dessa implementação.. é que ela não respeitará a configuração em TACBrDFeSSL, definida para comunicação HTTPS... pois ACBrSocket, sempre usará OpenSSL

@Daniel Simoes

 Boa tarde, já tentamos, eu e o @Elias LS Tech,  fazer o envio na maneira padrão, com SOAP, mas o provedor IPM só aceita assim, seria possível liberar as alterações para pelo menos quem precisa gerar com IPM conseguir desta forma e tentar mais algumas formas para daqui por diante.

o @Elias LS Tech e o @Léo e eu estamos no aguardo para podermos liberar para nossos clientes.

  • Moderadores
Postado
Em 25/01/2018 at 07:27, Filipe Natividade disse:

Infelizmente o provedor IPM não utiliza padrão SOAP, então se vc tiver alguma ideia de como fazer sem o INDY, por favor, me informe que faço a alteração, Eu e o Elias tentamos de outra forma, mas sem sucesso.

Qual é exatamente o problema em usar o EnviarDados original?

Tem o provedor Agili no componente que é REST e funciona normalmente.

Pelo que vi no IPM.ini já está configurado para não fazer o envelopamento.

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Moderadores
Postado
58 minutos atrás, Filipe Natividade disse:

No manual da IPM não possui nenhuma menção para fazer o envelopamento, apenas para dar dar um post com tais parâmetros, agora se alguém puder dar um exemplo de com envelopamento agradeço.

Ou algum exemplo de como utilizar o EnviarDados original.

Manual Eletron V2.pdf

Eu não disse que precisava... se não é SOAP acredito que não deva.

Perguntando novamente, qual o problema ao usar o EnviarDados original?

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado (editado)
6 minutos atrás, BigWings disse:

Eu não disse que precisava... se não é SOAP acredito que não deva.

Perguntando novamente, qual o problema ao usar o EnviarDados original?

simplesmente ele não consegue logar no webservice, não reconhece usuário e senha, sem ser no modelo que está em anexo, não conseguimos fazer ele autenticar no webservice.

Olhando o manual, como você faria para enviar esses parâmetros post no EnviarDados  original?

Editado por Filipe Natividade
  • Moderadores
Postado
24 minutos atrás, Filipe Natividade disse:

simplesmente ele não consegue logar no webservice, não reconhece usuário e senha, sem ser no modelo que está em anexo, não conseguimos fazer ele autenticar no webservice.

Olhando o manual, como você faria para enviar esses parâmetros post no EnviarDados  original?

Me parece que apenas acrescentando as linhas referentes a autenticação no DefinirDadosMsg pode resolver.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
48 minutos atrás, BigWings disse:

Me parece que apenas acrescentando as linhas referentes a autenticação no DefinirDadosMsg pode resolver.

Como que eu posso fazer uma requisição POST simples, não SOAP, dentro dos métodos padrões?, o que será preciso reimplementar?

  • Moderadores
Postado
4 minutos atrás, Filipe Natividade disse:

Como que eu posso fazer uma requisição POST simples, não SOAP, dentro dos métodos padrões?, o que será preciso reimplementar?

Pelo que entendi dos fontes, a única diferença de uma requisição SOAP para uma comum é que a SOAP acrescenta o SoapAction como header na requisição. Veja o método Enviar nas classes derivadas de TDFeSSLHttpClass.

No caso do Agili, não precisou fazer nada para alterar o tipo de requisição, mesmo enviando um SoapAction qualquer a resposta vem normalmente.

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

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

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...