Ir para conteúdo
  • Cadastre-se

Coletek MG

Membros
  • Total de ítens

    3
  • Registro em

  • Última visita

Posts postados por Coletek MG

  1. Em 08/11/2022 at 22:26, JHONLENON disse:

    Coletek MG Eu consegui fazer a baixar....agora está 100%...Emissão, Consulta e Baixa na API Cobranca v2. O erro 403 Forbidden na consulta é permissão no seu token, nesse caso vc tem que reportar ao suporte do itaú para dá permissão no seu token. 

    Eu consegui fazer os métodos de PATCH..

    Tive o mesmo problema do Forbidden 403 por semanas... até o banco auxiliar e liberar o acesso.

    Quanto a consulta, não consegui fazer no Delphi e fiz uma API auxiliar no PHP onde o Delphi a consome.

    Ao testar com um boleto quitado, a consulta sempre retorna vazio, ou que o o boleto está "Em aberto", mesmo tendo sido quitado e apresentado no portal como "Quitado", mas via API retorna sempre "Em aberto". 

    Em retorno do banco, eles disseram que tiveram problemas com alguns clientes, incluindo a Natura.

  2. Em 12/10/2022 at 20:49, JHONLENON disse:

    Coletek MG Você consegiu emitir boleto na API do Itaú na v2? vc pode compartilhar seu codigo aqui no forum?

    Emitir e cancelar sim, usei IdHTTP:

     

    function Tfrm_BoletoItau.RequisicaoRestCert(BodyJson: String; var MsgRetorno: String; Requisicao: TMetodoRequisicao): Integer;
    var
      HTTP: TIdHTTP;
      IOHandle: TIdSSLIOHandlerSocketOpenSSL;
      ListParams: TStringList;
      JsonStreamEnvio, Resp: TStringStream;
      Jso: TJSONObject;
      JsoPair: TJSONPair;
      Parametros, Uri: String;
      PostBoletoError: String;
      PostBoletoResult: Boolean;
      UriConsulta: TStringList;
    begin
      if (memoToken.Lines.Text = '') then
      begin
        PostBoletoError := 'Error: Token oAuth não gerado ou expirado!';
        exit;
      end;
      try
        ListParams := TStringList.Create;
        Resp := TStringStream.Create;
        UriConsulta := TStringList.Create;
        HTTP := TIdHTTP.Create(Self);
        HTTP.Request.BasicAuthentication := False;
        HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
        IOHandle := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);
        IOHandle.SSLOptions.Method := sslvTLSv1_2;
        IOHandle.SSLOptions.Mode := sslmClient;
        IOHandle.SSLOptions.CertFile := Cert_File;
        IOHandle.SSLOptions.KeyFile := Key_File;
        HTTP.IOHandler := IOHandle;
        HTTP.Request.ContentType := 'application/json';
        HTTP.Request.Accept := '*/*';
        HTTP.Request.CharSet := 'utf-8';
        HTTP.Request.CustomHeaders.FoldLines := False;
        HTTP.Request.CustomHeaders.Add('Authorization: Bearer ' + memoToken.Lines.Text);
        try
          // Verificando qual tipo de requisição
          if Requisicao = mrPost then
          begin
            ListParams.text := BodyJson;
            JsonStreamEnvio := TStringStream.Create(ListParams.text);
            HTTP.Post(Uri_Emissao, JsonStreamEnvio, Resp);
          end
          else if Requisicao = mrPatch then
          begin
            Uri := StringReplace(Uri_Baixa, '{idBoleto}', edtIdBoleto.Text, [rfReplaceAll]);
            ListParams.text := '{}';
            JsonStreamEnvio := TStringStream.Create(ListParams.text);
            HTTP.Patch(Uri, JsonStreamEnvio, Resp);
          end
          else if Requisicao = mrGet then
          begin
            ListParams.text := '{}';
            JsonStreamEnvio := TStringStream.Create(ListParams.text);
            UriConsulta.Text := Uri_Consulta;
            UriConsulta.Text := StringReplace(UriConsulta.Text, '{id_beneficiario}', copy(edtBoletoCons.Text, 1, 12), [rfReplaceAll]);
            UriConsulta.Text := StringReplace(UriConsulta.Text, '{codigo_carteira}', copy(edtBoletoCons.Text, 13, 3), [rfReplaceAll]);
            UriConsulta.Text := StringReplace(UriConsulta.Text, '{nosso_numero}'   , copy(edtBoletoCons.Text, 16, 8), [rfReplaceAll]);
            UriConsulta.Text := StringReplace(UriConsulta.Text, '{data_emissao}', FormatDateTime('YYYY-MM-DD',strToDate(edtDataEmissao.Text)) , [rfReplaceAll]);
            HTTP.Request.CustomHeaders.FoldLines := False;
            HTTP.Request.ContentType := 'application/json';
            HTTP.HandleRedirects := True;
            HTTP.Request.CustomHeaders.Add('Authorization: Bearer ' + memoToken.Lines.Text);
            HTTP.Request.CustomHeaders.Add('x-itau-apikey:' + Client_ID);
            HTTP.Request.CustomHeaders.Add('x-itau-correlationID:' + Correlation_ID);
            HTTP.Request.CustomHeaders.Add('x-itau-flowID:' + '8A30E15C-1AC9-418A-AF1E-02E36BF77ADE');
            Clipboard.AsText := UriConsulta.Text;
            HTTP.Get(UriConsulta.Text, Resp);
          end;
          if HTTP.ResponseCode = 200 then
          begin
            PostBoletoResult := true;
            try
              Jso := TJSONObject.Create;
              Jso.Parse(Resp.Bytes, 0);
              MsgRetorno := Jso.ToString;
              Result := HTTP.ResponseCode;
            finally
              FreeAndNil(Jso);
            end;
          end
          else
            PostBoletoError := 'Error: ' + IntToStr(HTTP.ResponseCode) + ' - ' +
              Resp.DataString;
        except
          on e: EIdHTTPProtocolException do
          begin
            Result := HTTP.ResponseCode;
            MsgRetorno := e.ErrorMessage;
            PostBoletoError := 'Error: ' + HTTP.ResponseText + ' - ' + MsgRetorno;
          end;
        end;
      finally
        memoRetornoCons.Lines.Text  := PostBoletoError;
        FreeAndNil(ListParams);
        FreeAndNil(Resp);
        FreeAndNil(JsonStreamEnvio);
        FreeAndNil(IOHandle);
        FreeAndNil(HTTP);
      end;
    end;

    Não consigo agora consultar o boleto...

    Só retorna erro 403 Forbidden 

    Se alguem puder me ajudar nesse problema, ficarei muito grato.

×
×
  • 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...