Ir para conteúdo
  • Cadastre-se

dev botao

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

  • Membros Pro
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.

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.

  • Membros Pro
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á 2346 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.