Ir para conteúdo
  • Cadastre-se

dev botao

API Banco Inter


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

Recommended Posts

  • Consultores
Postado
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

  • Consultores
Postado
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"

  • Consultores
Postado
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"

  • Consultores
Postado
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"

Postado

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

  • Consultores
Postado
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"

Postado

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

  • Consultores
Postado
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"

Postado

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

  • Consultores
Postado
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"

  • Consultores
Postado
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"

Postado

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

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

Postado (editado)

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

Postado

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

  • Membros Pro
Postado
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?

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