Ir para conteúdo
  • Cadastre-se

Problemas ao autenticar Token API Banco Inter


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

Recommended Posts

Postado (editado)

Olá Pessoal, estou tendo problemas na função que Gera o Token do boleto inter, pois o mesmo retorna HTTP_Code=500. Segue os logs completos do ACBrBoleto (Componente Delphi).

12/08/24 18:50:41:524 - Autenticando Token... 
12/08/24 18:50:41:525 - Comando Enviar: TOAuth
12/08/24 18:50:41:532 - URL: [POST] https://cdpj.partners.bancointer.com.br/oauth/v2/token
12/08/24 18:50:41:588 - Erro: HTTP_Code=500 Erro=client_id={AQUI EU COLOQUEI O MEU CLIENT_ID}&client_secret={AQUI EU COLOQUEI O MEU CLIENT SECRET}&scope=boleto-cobranca.read boleto-cobranca.write pagamento-boleto.write pagamento-boleto.read cob.write cob.read cobv.write cobv.read pix.write pix.read webhook.read webhook.write payloadlocation.write payloadlocation.read pagamento-pix.write pagamento-pix.read&grant_type=client_credentials
12/08/24 18:50:41:589 - Falha Envio: Falha na Autenticação: HTTP_Code=500 Erro=client_id={AQUI EU COLOQUEI O MEU CLIENT_ID}&client_secret={AQUI EU COLOQUEI O MEU CLIENT SECRET}&scope=boleto-cobranca.read boleto-cobranca.write pagamento-boleto.write pagamento-boleto.read cob.write cob.read cobv.write cobv.read pix.write pix.read webhook.read webhook.write payloadlocation.write payloadlocation.read pagamento-pix.write pagamento-pix.read&grant_type=client_credentials

 

Abaixo as configurações do componente ACBrBoleto:

procedure TForm1.ConfigurarComponente;
var
  Boleto         : TACBrBoleto;
  WebService     : TACBrWebService;
  Beneficiario   : TACBrCedente;
  BeneficiarioWS : TACBrCedenteWS;
  Banco          : TACBrBanco;
  Cobranca       : TACBrTipoCobranca;
begin
  Boleto     := ACBrBoleto1;
  WebService := Boleto.Configuracoes.WebService;
  Cobranca   := Boleto.Banco.TipoCobranca;
  Beneficiario   := Boleto.Cedente;
  BeneficiarioWS := Beneficiario.CedenteWS;

  Boleto.Homologacao := false;
  Boleto.Banco.TipoCobranca := cobBancoInter;

  BeneficiarioWS.ClientID     := '{AQUI EU COLOQUEI O MEU CLIENT_ID}';
  BeneficiarioWS.ClientSecret := '{AQUI EU COLOQUEI O MEU CLIENT SECRET}';
  BeneficiarioWS.KeyUser      := '';
  BeneficiarioWS.Scope        := 'boleto-cobranca.read boleto-cobranca.write pagamento-boleto.write pagamento-boleto.read '+
                                 'cob.write cob.read cobv.write cobv.read pix.write pix.read webhook.read webhook.write '+
                                 'payloadlocation.write payloadlocation.read pagamento-pix.write pagamento-pix.read';
  BeneficiarioWS.IndicadorPix := true;
  WebService.Ambiente         := taProducao;
  WebService.SSLHttpLib       := TSSLHttpLib(0);
  WebService.SSLType          := TSSLType(5);
  WebService.TimeOut          := 10000;
  WebService.ArquivoCRT       := DIR_CERTIF+'InterAPI_Certificado.crt';
  WebService.ArquivoKEY       := DIR_CERTIF+'InterAPI_Chave.key';


  //Dados do Cedente:
  Beneficiario.CodigoCedente      := '{MEU CODIGO}';
  Beneficiario.Nome                      := '{MINHA EMPRESA};
  Beneficiario.Agencia                  := '0001';
  Beneficiario.AgenciaDigito        := '1';
  Beneficiario.Conta                     := '{MINHA CONTA}';
  Beneficiario.ContaDigito            := '2';
end;

 

OBs.: Para testar se realmente o banco estava aceitando as minhas credenciais, eu configurei o Postman com os mesmos parâmetros, e ao enviar o método POST obtive com sucesso o "access_token".

Desde já agradeço

Editado por magisystem
Esconder dados pessoais
  • Consultores
Postado
46 minutos atrás, magisystem disse:

WebService.SSLHttpLib       := TSSLHttpLib(0);

porque está deixando NONE aqui

TSSLHttpLib = (httpNone, httpWinINet, httpWinHttp, httpOpenSSL, httpIndy); 

deixaria assim

SSLHttpLib=3
SSLCryptLib=1
SSLXmlSignLib=4
SSLType=5

 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

Postado
15 horas atrás, Juliomar Marchetti disse:

porque está deixando NONE aqui

TSSLHttpLib = (httpNone, httpWinINet, httpWinHttp, httpOpenSSL, httpIndy); 

deixaria assim

SSLHttpLib=3
SSLCryptLib=1
SSLXmlSignLib=4
SSLType=5

 

Fala Juliomar blz, pois é, tbm testei assim, e da forma que vc enviou tbm, mesmo erro..

  • Consultores
Postado
12 minutos atrás, magisystem disse:

Fala Juliomar blz, pois é, tbm testei assim, e da forma que vc enviou tbm, mesmo erro..

então é algo com seu token ou até mesmo alguma informação que esteja diferente

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

Postado
5 minutos atrás, Juliomar Marchetti disse:

então é algo com seu token ou até mesmo alguma informação que esteja diferente

pois é Juliomar, muito estranho, mas testei o token juntamente com os certificados e ids que o banco inter oferece no postman e funcionou normal. Ele da o erro na procedure TOAuth.ProcessarRespostaOAuth(const ARetorno: AnsiString); dentro de ACBrBoletoWS.Rest.OAuth.pas na linha em vermelho.

procedure TOAuth.ProcessarRespostaOAuth(const ARetorno: AnsiString);
var
  LJson        : TACBrJSONObject;
  LErrorMessage: String;
begin
  FToken           := '';
  FExpire          := 0;
  FErroComunicacao := '';
  try
    LJson := TACBrJSONObject.Parse(UTF8ToNativeString(ARetorno));
    try
      if (FHTTPSend.ResultCode in [ 200 .. 205 ]) then
      begin
        FToken := LJson.AsString[ 'access_token' ];
        try
          FExpire := now + (LJson.AsInteger[ 'expires_in' ] * OneSecond);
          DoLog('Validade: ' + DateTimeToStr(FExpire), logSimples);
        except
          FExpire := 0;
        end;
      end
      else
      begin
        FErroComunicacao := 'HTTP_Code=' + IntToStr(FHTTPSend.ResultCode);
        if Assigned(LJson) then
        begin
          LErrorMessage := LJson.AsString[ 'error_description' ];
          if LErrorMessage = '' then
            LErrorMessage  := LJson.AsString[ 'error_title' ];
          FErroComunicacao := FErroComunicacao + ' Erro=' + LErrorMessage;
        end;
        DoLog('Erro: ' + FErroComunicacao, logSimples);
      end;
    finally
      LJson.Free;
    end;
  except
    FErroComunicacao := 'HTTP_Code=' + IntToStr(FHTTPSend.ResultCode) + ' Erro=' + ARetorno;
    DoLog('Erro: ' + FErroComunicacao, logSimples);
  end;
end;

 

essa ARetorno vem alimentada da seguinte forma:

ARetorno: 'client_id={AQUI EU COLOQUEI O MEU CLIENT_ID}&client_secret={AQUI EU COLOQUEI O MEU CLIENT_SECRET}&scope=boleto-cobranca.read boleto-cobranca.write pagamento-boleto.write pagamento-boleto.read cob.write cob.read cobv.write cobv.read pix.write pix.read webhook.read webhook.write payloadlocation.write payloadlocation.read pagamento-pix.write pagamento-pix.read&grant_type=client_credentials'

EU acredito que deveria vir um JSON aqui.

  • Consultores
Postado

eu sei que está funcionando e tem gente usando pois já vi apessoa emitindo boletos portanto tem a ver com suas credenciais a situação.

mas não posso afirmar o que . eu não emito e não tenho dados, só estou tentando ajudar

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

Postado
14 minutos atrás, Juliomar Marchetti disse:

eu sei que está funcionando e tem gente usando pois já vi apessoa emitindo boletos portanto tem a ver com suas credenciais a situação.

mas não posso afirmar o que . eu não emito e não tenho dados, só estou tentando ajudar

Assim Juliomar, eu agradeço pela ajuda, vou continuar investigando aqui, abraços.

  • Solution
Postado

Consegui resolver meu Problema Juliomar, gerei uma nova API lá no site do banco inter, baixei os novos certificados em produção e funcionou normal, Obrigado pela atenção e a toda equipe.

  • Curtir 1
  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

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