Ir para conteúdo
  • Cadastre-se

dev botao

API Banco Inter


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

Recommended Posts

  • Consultores
1 hora atrás, Aggille Sistemas de Gestão disse:

bom dia @Victor H. Gonzales - Panda  

Feliz 2023 pra todos ai no projeto ACBR.. muito sucesso pra todos...

Como está o andamento essa demanda ?

sds,

Boa tarde @Aggille Sistemas de Gestão
Feliz 2023 !!! 
O Victor Panda esta ausente hoje e amanha. Na quarta está de volta.
Pelo que vi esta trabalhando no assunto. 
Abr

  • Curtir 1
  • Obrigado 1
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Consultores
Em 09/01/2023 at 11:39, Aggille Sistemas de Gestão disse:

bom dia @Victor H. Gonzales - Panda  

Feliz 2023 pra todos ai no projeto ACBR.. muito sucesso pra todos...

Como está o andamento essa demanda ?

sds,

Bom dia,

A Camada de Rest dos boletos vamos tirar a dependência do ACBrDFE e colocar no Synapse, do contrário, teremos que colocar o CRT no Indy e no Wincrypt além do Openssl como está hoje, acho que o acoplamento está maior que o necessário.

Acredito que remover essa parte é mais simples, e fazer a comunicação direta.

  • Curtir 1
  • Obrigado 2
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Consultores
Em 11/01/2023 at 13:04, Aggille Sistemas de Gestão disse:

perfeito... ficamos no aguardo...

Boa tarde,

@Jean Peixoto @Aggille Sistemas de Gestão

Estou sem acesso ao certificado do Inter, é possível realizar os testes ?

No Banco do Brasil os testes foram feitos, e as mudanças estão operacionais, se surtir resultado resolvemos o caso.

Abraços e feliz 2023 a todos

ACBrBoletoWS.pas ACBrBoleto.pas

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

Pelo que pude notar, nessa abordagem ,é o método THTTPSend.HTTPMethod que faz a transmissão.. porém não encontrei ali aonde está a informação dos arquivos de certificado...

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores
15 minutos atrás, Aggille Sistemas de Gestão disse:

Pelo que pude notar, nessa abordagem ,é o método THTTPSend.HTTPMethod que faz a transmissão.. porém não encontrei ali aonde está a informação dos arquivos de certificado...

Bom dia,

Deveria ser na criação do TOAuth ele fazer o apontamento.

  if NaoEstaVazio(ACertificateCRT) then
    FHTTPSend.Sock.SSL.CertificateFile := ACertificateCRT;

  if NaoEstaVazio(ACertificateKEY) then
    FHTTPSend.Sock.SSL.PrivateKeyFile := ACertificateKEY;

eu devo receber nos próximos dias um certificado de um usuário, dai eu consigo debugar tambem e facilita para ajudar.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

Adicionei essas linhas..
 

  FBoletoWS.ArquivoCRT := FBoletoWS.FBoleto.Configuracoes.WebService.ArquivoCRT;
  FBoletoWS.ArquivoKEY := FBoletoWS.FBoleto.Configuracoes.WebService.ArquivoKEY;

 

antes de criar o FOAuth.. e a principio funcionou.. estou testando mais algumas .. não encontrei aonde informar esses campos direto na classe TBoletoW_Inter_API...

  FOAuth := TOAuth.Create(FHTTPSend,
                          FBoletoWS.FBoleto.Configuracoes.WebService.Ambiente,
                          FBoletoWS.FBoleto.Cedente.CedenteWS.ClientID,
                          FBoletoWS.FBoleto.Cedente.CedenteWS.ClientSecret,
                          FBoletoWS.FBoleto.Cedente.CedenteWS.Scope,
                          FBoletoWS.ArquivoCRT,
                          FBoletoWS.ArquivoKEY);
 

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores
9 minutos atrás, Aggille Sistemas de Gestão disse:

Adicionei essas linhas..
 

  FBoletoWS.ArquivoCRT := FBoletoWS.FBoleto.Configuracoes.WebService.ArquivoCRT;
  FBoletoWS.ArquivoKEY := FBoletoWS.FBoleto.Configuracoes.WebService.ArquivoKEY;

 

antes de criar o FOAuth.. e a principio funcionou.. estou testando mais algumas .. não encontrei aonde informar esses campos direto na classe TBoletoW_Inter_API...

  FOAuth := TOAuth.Create(FHTTPSend,
                          FBoletoWS.FBoleto.Configuracoes.WebService.Ambiente,
                          FBoletoWS.FBoleto.Cedente.CedenteWS.ClientID,
                          FBoletoWS.FBoleto.Cedente.CedenteWS.ClientSecret,
                          FBoletoWS.FBoleto.Cedente.CedenteWS.Scope,
                          FBoletoWS.ArquivoCRT,
                          FBoletoWS.ArquivoKEY);
 

Boa tarde,

Isso ele deveria herdar do Pai TBoletoWSRest, não deveria ser necessário reescrever nada no W_Inter_API

pela correção que você informou, seria isso que está no arquivo em anexo, correto?

ACBrBoletoWS.pas

  • Obrigado 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

essa era minha segunda opção...
Outra coisa.. na unit httpsend, ele inicia MimeType como 'text/html', e adiciona o ContentType como 'application/json', e o banco inter retorna erro dizendo que conteúdo [text/html,application/json] 'é inválido, deveria ir somente 'application/json'...

Essa é a mensagem de erro retornada...
'Content Type [text/html,application/json] not allowed. Allowed types: [application/json] de  Valor :'
 

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores
29 minutos atrás, Aggille Sistemas de Gestão disse:

essa era minha segunda opção...
Outra coisa.. na unit httpsend, ele inicia MimeType como 'text/html', e adiciona o ContentType como 'application/json', e o banco inter retorna erro dizendo que conteúdo [text/html,application/json] 'é inválido, deveria ir somente 'application/json'...

Essa é a mensagem de erro retornada...
'Content Type [text/html,application/json] not allowed. Allowed types: [application/json] de  Valor :'
 

Qual dos metodos está o problema ?

Oauth ou Rest?

ACBrBoletoWS.pas

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

fiz os testes e tudo funcionou.. segue uns pequenos ajustes que tive que fazer ... 
a unit ACBRBoletoWS.PAS é a mesma que tu enviou acima... as demais fiz pequenos ajustes...
 

ACBrBoleto.pas ACBrBoletoRet_Inter_API.pas ACBrBoletoW_Inter_API.pas ACBrBoletoWS.pas

  • Curtir 1

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores
37 minutos atrás, Aggille Sistemas de Gestão disse:

fiz os testes e tudo funcionou.. segue uns pequenos ajustes que tive que fazer ... 
a unit ACBRBoletoWS.PAS é a mesma que tu enviou acima... as demais fiz pequenos ajustes...
 

ACBrBoleto.pas 246.57 kB · 0 downloads ACBrBoletoRet_Inter_API.pas 17.43 kB · 0 downloads ACBrBoletoW_Inter_API.pas 26.67 kB · 0 downloads ACBrBoletoWS.pas 36.43 kB · 0 downloads

Boa tarde,

Verifique as units enviadas por favor, pois a enviada você criou um enumerador novo, que é desnecessário para esse caso, e inseriu a dependência do Indy no W_Inter_API, removeu as propriedades de CRT e KEY que está a nivel do boleto e criou elas e nível da openssl.

abraços e obrigado pelos testes

  • Obrigado 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Consultores
4 horas atrás, Aggille Sistemas de Gestão disse:

Qual enum ?

CobInterApi ele não é necessário.

Eu vou rever as units que você me enviou por último, pois o Merge constatou essas mudanças e o indy.

Amanhã vejo isso novamente 

  • Obrigado 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

ok.. estava justamente revendo o uso dessa opção.. a o indy eu só esqueci de remover do Uses.. dentro dos métodos já havia sido removido.. estou vendo também a questão dos arquivos de certificado..

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

Bom dia.. estou utilizando TOAuth para tentar pegar o token.. 
porém no método TOAuth.Executar, aonde monta os parametros,
não vejo os parametros client_id e cliente_secret, que são necessários
para pegar o token do banco inter.. scope e grant_type estão lá...
FParams:= C_GRANT_TYPE + '=' + GrantType
            + '&' + C_SCOPE + '=' + Scope;

nessa linha deveria estar os parametros.. não coloquei por não sei a extensão
da alteração nos outros bancos...

 

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Em 16/01/2023 at 11:43, Victor H. Gonzales - Panda disse:

Bom dia,

Deveria ser na criação do TOAuth ele fazer o apontamento.

  if NaoEstaVazio(ACertificateCRT) then
    FHTTPSend.Sock.SSL.CertificateFile := ACertificateCRT;

  if NaoEstaVazio(ACertificateKEY) then
    FHTTPSend.Sock.SSL.PrivateKeyFile := ACertificateKEY;

eu devo receber nos próximos dias um certificado de um usuário, dai eu consigo debugar tambem e facilita para ajudar.

@Victor H. Gonzales - Panda

Te enviei o meu certificado por email, conforme me pediu!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

@Aggille Sistemas de Gestão

Estou recebendo a mensagem 'HTTP/1.0 429 Ttoo Many Requests'

Se eu enviar apenas um boleto por vez, ele envia! Se eu enviar mais de 1 ele dá esse erro!

Já tentei tb fazer loop enviando 1 por vez, vai até 5! Esse é o limite mesmo ou estou fazendo algo errado?

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
18 minutos atrás, Jean Peixoto disse:

@Aggille Sistemas de Gestão

Estou recebendo a mensagem 'HTTP/1.0 429 Ttoo Many Requests'

Se eu enviar apenas um boleto por vez, ele envia! Se eu enviar mais de 1 ele dá esse erro!

Já tentei tb fazer loop enviando 1 por vez, vai até 5! Esse é o limite mesmo ou estou fazendo algo errado?

A mensagem completa que veio no retorno foi:

 

Falha Envio: TBoletoW_Inter_APIErro ao gerar token de Autenticação: Código: -429 HTTP/1.0 429 Too Many Requests Mensagem:HTTP/1.0 429 Too Many Requests

Link para o comentário
Compartilhar em outros sites

tem um limite de conexões pra pegar o token, 5 chamadas por minuto...
tem que pegar o Token no inicio e enviar todos os boletos.. cada token vale por 1 hora...
utilizando o Indy consigo pegar normalmente, mas usando THTTPSend ainda não consegui...sigo na tentativa...

Editado por Aggille Sistemas de Gestão
  • Curtir 1

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

Bom dia...

ainda não consegui pegar o token do banco inter com FHTTPSend.. segue abaixo o codigo que estou usando.. baseado na classe TOAuth.. os parametros estão corretos, confirmei na depuração, os arquivos de certificados tambem... testei com postman, e em outras linguagens e a api está funcionando...pelo FHHTPSend retorna erro 500, conforme o manual da api esse erro é quando os parâmetros não estão corretos.. os parametros devem ir dentro do Body da requisição... consigo pegar o token com Indy...

 

  FParams :=  'grant_type=' + 'client_credentials' +
              '&scope=' + Boleto.Cedente.CedenteWS.Scope +
              '&client_id=' +Boleto.Cedente.CedenteWS.ClientID +
              '&client_secret=' + Boleto.Cedente.CedenteWS.ClientSecret ;

  FHTTPSend := THTTPSend.Create;
  FHTTPSend.Sock.SSL.CertificateFile := Boleto.Configuracoes.WebService.ArquivoCRT;
  FHTTPSend.Sock.SSL.PrivateKeyFile := Boleto.Configuracoes.WebService.ArquivoKEY;
  FHTTPSend.Headers.Clear;
  LHeaders := TStringList.Create;

  try
    LHeaders.Add( 'content-type'  + ': ' + 'application/x-www-form-urlencoded' );
    LHeaders.Add( 'accept' + ': ' + 'application/json');
    FHTTPSend.Headers.AddStrings(LHeaders);
  finally
    LHeaders.Free;
  end;

  try
    FHTTPSend.Document.Position:= 0;
    WriteStrToStream(FHTTPSend.Document, AnsiString(FParams));
    FHTTPSend.HTTPMethod(MetodoHTTPToStr(htPOST), C_URL_OAUTH_PROD);
    FHTTPSend.Document.Position:= 0;
    FToken := ReadStrFromStream(FHTTPSend.Document, FHTTPSend.Document.Size ) ;
  finally

  end;
 

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
24 minutos atrás, Aggille Sistemas de Gestão disse:

Bom dia...

ainda não consegui pegar o token do banco inter com FHTTPSend.. segue abaixo o codigo que estou usando.. baseado na classe TOAuth.. os parametros estão corretos, confirmei na depuração, os arquivos de certificados tambem... testei com postman, e em outras linguagens e a api está funcionando...pelo FHHTPSend retorna erro 500, conforme o manual da api esse erro é quando os parâmetros não estão corretos.. os parametros devem ir dentro do Body da requisição... consigo pegar o token com Indy...

 

  FParams :=  'grant_type=' + 'client_credentials' +
              '&scope=' + Boleto.Cedente.CedenteWS.Scope +
              '&client_id=' +Boleto.Cedente.CedenteWS.ClientID +
              '&client_secret=' + Boleto.Cedente.CedenteWS.ClientSecret ;

  FHTTPSend := THTTPSend.Create;
  FHTTPSend.Sock.SSL.CertificateFile := Boleto.Configuracoes.WebService.ArquivoCRT;
  FHTTPSend.Sock.SSL.PrivateKeyFile := Boleto.Configuracoes.WebService.ArquivoKEY;
  FHTTPSend.Headers.Clear;
  LHeaders := TStringList.Create;

  try
    LHeaders.Add( 'content-type'  + ': ' + 'application/x-www-form-urlencoded' );
    LHeaders.Add( 'accept' + ': ' + 'application/json');
    FHTTPSend.Headers.AddStrings(LHeaders);
  finally
    LHeaders.Free;
  end;

  try
    FHTTPSend.Document.Position:= 0;
    WriteStrToStream(FHTTPSend.Document, AnsiString(FParams));
    FHTTPSend.HTTPMethod(MetodoHTTPToStr(htPOST), C_URL_OAUTH_PROD);
    FHTTPSend.Document.Position:= 0;
    FToken := ReadStrFromStream(FHTTPSend.Document, FHTTPSend.Document.Size ) ;
  finally

  end;
 

Bom dia

Estou meio perdido nos arquivos que foram modificados!

Podem postar aqui pra eu ajudar nesses casos?

Link para o comentário
Compartilhar em outros sites

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