Ir para conteúdo
  • Cadastre-se

dev botao

API Cash Management Banco Itaú - V2


  • Este tópico foi criado há 545 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa Tarde Pessoal.

Gostaria de saber se já possui em Desenvolvimento a API Cash Management Banco Itaú - V2;

 

Caso não, gostaria de contribuir com o desenvolvimento deste projeto, mais sempre que ajudei no forum foi alguma alteração pontual enviando ao forum a correção.

Como seria os passos para novos desenvolvimento como esse?

 

Não tenho o manual do projeto pois estou olhando no https://devportal.itau.com.br/nossas-apis/cash-management-ext-v2

Link para o comentário
Compartilhar em outros sites

Boa noite juliomar. 

 

Seria a mesma coisa da API de cobrança BB e Sicred já disponível

 

É que o do Itaú eles tratam com esse nome. Pelos manuais que vi. 

 

Hoje do Itaú já tem a versão 1 no acbr. Esse aí seria a versão 2 com registro, Alteração e consulta

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bora então. primeiro conhece e sabe que tem todos os fontes do ACBr para poder olhar

então já deve ter olhado todo ele, agora é pegar lá na pasta WS olhar um que se assemelha e começar a desenvolver

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Bom dia. 

Sim conheço a estrutura acbr. Vou dar início no desenvolvimento então. É que preferi enviar aqui antes para ter certeza que isso já não estava em desenvolvimento, pois caso já estive-se gostaria de poder ajudar.  

No meu desenvolvimento eu subo os arquivos para vcs por aqui mesmo?

 

 

Editado por Rafael Mozer
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
Em 03/05/2022 at 07:55, Rafael Mozer disse:

Bom dia. 

Sim conheço a estrutura acbr. Vou dar início no desenvolvimento então. É que preferi enviar aqui antes para ter certeza que isso já não estava em desenvolvimento, pois caso já estive-se gostaria de poder ajudar.  

No meu desenvolvimento eu subo os arquivos para vcs por aqui mesmo?

 

 

@Rafael Mozer Boa tarde.

Você chegou a iniciar o desenvolvimento da API V2?

Estamos precisando da mesma para 2 clientes, pois o banco Itaú não libera a V1 para contas novas.

Nós já até iniciamos aqui, pois temos uma certa urgência.

Mas se você começou o desenvolvimento, podemos parar o que começamos aqui e focar no seu, para ganharmos tempo, visto que faz mais tempo que você postou aqui que iria iniciar o desenvolvimento.

Basta você enviar o que já foi feito que ajudamos a implementar.

Mas, se você não deu prosseguimento, damos continuidade no nosso desenvolvimento aqui para terminarmos o mais breve possível.

Aguardamos seu retorno.

Obs.: Estou perguntando apenas para não ter retrabalho. 

Atenciosamente.

Editado por Jéter Rabelo Ferreira

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

Boa tarde.

Como não obtive resposta, estamos terminando de implementar a versão 2 desse banco.

O banco mudou o OAuth para OAuth2 (Implementado)

Estamos terminando de efetuar a geração do JSON de envio (completamente diferente da versão anterior).

Assim que terminarmos, adiciono aqui para análise.

Atenciosamente.

Editado por Jéter Rabelo Ferreira
  • Curtir 2

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Boa Tarde Jéter.

Estava em Viagem e acabei não olhando o Fórum (Desculpa pela não resposta).

Devido a minha viagem tira parado o projeto. 

Estou voltando nele hoje. 

Fiz a parte de Autenticação e Geração do JSON agora estou em contato com o Banco para poder realizar alguns teste.

Você conseguiu algum progresso por ai?

Link para o comentário
Compartilhar em outros sites

Boa tarde Rafael.

Para posicionar as pessoas, o ambiente de homologação não valida o JSON de envio, e retorna um boleto padrão.

O @Rafael Mozervai ter uma reunião com o pessoal do Banco Itaú.

Enviei as unit's que eu havia alterado/criado para que ele possa analisar juntamente com a que ele havia feito.

Qualquer novidade, informamos aqui.

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

Boa Tarde Pessoal. 

Conforme Posicionamento do @Jéter Rabelo Ferreira, Tive uma reunião hoje com o pessoal do Itaú e Provavelmente estão com algum problema de validação no Ambiente SandBox.

Eles vão liberar um ambiente para que eu possa dar seguimentos nas validações.

@Jéter Rabelo Ferreira me passou as Unit's dele, e já estou fazendo um merge com a minha para que possamos manter um padrão de desenvolvimento.

Equipe de desenvolvimento do itáu irá entrar em contato comigo.

tendo mais informação, passo aqui no Fórum.

Atenciosamente

Editado por Rafael Mozer
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Boa noite @jburda.

Tive outra reunião com o pessoal do banco hoje. E estão com dificuldade para me passar as chaves descriptogradas.

Me passaram que o sistemas está em manutenção e que estará disponível dia 28, para poder me passar as chaves para a geração do certificado dinâmico.

As Rotinas estão desenvolvidas, Liberando acesso a produção vamos ver se vai funcionar tudo correto. Pq o Sandbox não valida nenhuma informação.

 

 

 

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

Em 26/09/2022 at 22:13, Rafael Mozer disse:

Boa noite @jburda.

Tive outra reunião com o pessoal do banco hoje. E estão com dificuldade para me passar as chaves descriptogradas.

Me passaram que o sistemas está em manutenção e que estará disponível dia 28, para poder me passar as chaves para a geração do certificado dinâmico.

As Rotinas estão desenvolvidas, Liberando acesso a produção vamos ver se vai funcionar tudo correto. Pq o Sandbox não valida nenhuma informação.

 

 

 

 

Bom dia! Alguma novidade?

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
  • Membros Pro

estou começando o desenvolvimento do boleto híbrido do Itaú, e o pessoal do banco me liberou hj o sandbox, vi que existe um endpoint chamado: "Bolecode - Emissão / Simulação de BoleCode (POST)"

[POST] ../pix_recebimentos_conciliacoes/v2/boletos_pix
API responsável por efetuar a emissão de um boleto + Pix.

Que está na sessão de API: Recebimentos Pix - API exclusiva Itaú

esse foi o único local que encontrei o boleto híbrido

Caso alguém tenha alguma rotina que queira compartilhar, pra economizar tempo, e que eu possa contribuir, ficaria grato.

Link para o comentário
Compartilhar em outros sites

Boa tarde, hoje recebi as credenciais do itaú, eu estou conseguindo gerar o tokem bearer mais na hora de emitir o boleto recebo o retorno HTTP/1.1 403 Forbidden, olhando o retorno de erro 403 é (Acesso Proibido), enviei um e-mail para o itau para eles verificar se tem algum bloqueio no acesso a API de Boleto v2.

Link para o comentário
Compartilhar em outros sites

Boa tarde, esse é meu códgio para obter o token bearer e emissão de boleto na API v2 do itaú, feito com indy. Implementação concluida com sucesso.API de Cobrança v2 Itaú.

uses IdHTTP, IdIOHandlerStack, IdSSL, blcksock, System.Json, IdGlobalProtocols, IdSSLOpenSSL, synautil, synsock, ssl_openssl;

procedure TF_boleto.EnviarBoletoItau;
var mURL, sResponse, mCode : string;
HTTP, HttpClient: TIdHTTP;
FParams, access_token, refresh_token : String;
Json, scope, token_type, expires_in, RESULTADO_BOLETO : String;
JsontoSend, AResponseContent : TStringStream;
var IOHandler : TIdSSLIOHandlerSocketOpenSSL;
var Resp, Req, Resp_Cobranca, Req_Cobranca: TStringStream;
var Result, s, recieveID, DATA_EMISSAO, DATA_VENCIMENTO, ArquivoJSON, ACESSO_TOKEN, RESULTADO_TOKEN, valorTexto : String;
var TICKET_XML, XML_COBRANCA : TStringList;
var newFile, Arq_Liberacao : TextFile;
var TICKET, RET_CODE, TIPO_PESSOA, TIPO_AMBIENTE, NSU, sCAMINHGO_EXE, FURLToken, URL, NUMERO_CADASTRO_PESSOA, JSON_TOKEN, JSON_BOLETO : String;
var DIAS_MULTA, DATA_HORA_TOKEN : Integer;
  XMLResponse, TIPO_VALIDACAO, ID_BENEFICIARIO, VALOR_BOLETO, TIPO_CLIENTE, VALOR_JUROS, VALOR_MULTAS, TextoOriginal  : String;
  var JsonStreamRetorno, JsonStreamEnvio: TStringStream;
  SSL : TIdSSLIOHandlerSocketOpenSSL;
begin
  //-----Todo conhecimento que o homem possui é dada por DEUS-------------------
  if Length(DM.SQL_contas_receber_boletoCPF_CNPJ_Cliente.AsString) = 14 then
  begin
    TIPO_CLIENTE             := 'J';
    NUMERO_CADASTRO_PESSOA   := 'numero_cadastro_nacional_pessoa_juridica';
  end
  else
  begin
    TIPO_CLIENTE := 'F';
    NUMERO_CADASTRO_PESSOA   := 'numero_cadastro_pessoa_fisica';
  end;
  DATA_EMISSAO     :=PegarNumeros(DateToStr(DM.SQL_contas_receber_boletoDetalhe_Data_Emissao.AsDateTime));
  DATA_VENCIMENTO  :=PegarNumeros(DateToStr(DM.SQL_contas_receber_boletoDetalhe_Data_Vencimento.AsDateTime));
  TIPO_VALIDACAO   :='';
  if DM.TIPO_AMBIENTE_BOLETO = 'Homologação' then
  begin
    TIPO_VALIDACAO :='validacao';
  end
  else
  begin
    TIPO_VALIDACAO :='efetivacao';
  end;
  DATA_EMISSAO     :=Copy(DATA_EMISSAO, 5, 4)+ '-'+  Copy(DATA_EMISSAO, 3, 2)+ '-'+Copy(DATA_EMISSAO, 1, 2);
  DATA_VENCIMENTO  :=Copy(DATA_VENCIMENTO , 5, 4)+ '-'+  Copy(DATA_VENCIMENTO , 3, 2)+ '-'+Copy(DATA_VENCIMENTO , 1, 2);
  ID_BENEFICIARIO          :='';
  ID_BENEFICIARIO          :=DM.SQL_busca_contaEmpresa_Agencia.AsString + FormatFloat('0000000', DM.SQL_busca_contaEmpresa_conta.AsInteger) + DM.SQL_busca_contaEmpresa_Conta_Digito.AsString;
  VALOR_BOLETO             :='';
  VALOR_BOLETO             :=PegarNumeros(FormatFloat('#000000000000000.00', DM.SQL_contas_receber_boletoDetalhe_Valor_Falta.AsFloat));
  VALOR_MULTAS             :=PegarNumeros(FormatFloat('#000000000000000.00', roundabnt(DM.SQL_busca_contaMULTA_DIA.AsFloat,-2)));
  VALOR_JUROS              :=PegarNumeros(FormatFloat('#000000000000000.00', roundabnt(VALOR_MOURA_JUROS,-2)));

  JSON_BOLETO :='{' + #13 +
                '    "data": {' + #13 +
                '        "etapa_processo_boleto": "'+TIPO_VALIDACAO+'",' + #13 +
                '        "codigo_canal_operacao": "API",' + #13 +
                '        "beneficiario": {' + #13 +
                '            "id_beneficiario": "'+ID_BENEFICIARIO+'"' + #13 +
                '        },' + #13 +
                '        "dado_boleto": {' + #13 +
                '            "descricao_instrumento_cobranca": "boleto",' + #13 +
                '            "tipo_boleto": "a vista",' + #13 +
                '            "codigo_carteira": "'+DM.SQL_busca_contaCarteira.AsString +'",' + #13 +
                '            "valor_total_titulo": "'+VALOR_BOLETO+'",' + #13 +
                '            "codigo_especie": "01",' + #13 +
                '            "valor_abatimento": "000",' + #13 +
                '            "data_emissao": "'+DATA_EMISSAO+'",' + #13 +
                '            "indicador_pagamento_parcial": false,' + #13 +
                '            "quantidade_maximo_parcial": 0,' + #13 +
                '            "pagador": {' + #13 +
                '                "pessoa": {' + #13 +
                '                    "nome_pessoa": "'+TrocaEComercialPorE(TiraAcentos(Copy(DM.SQL_contas_receber_boletoNomeRazaoSocial.AsString, 1, 50)))+'",' + #13 +
                '                    "tipo_pessoa": {' + #13 +
                '                        "codigo_tipo_pessoa": "'+TIPO_CLIENTE+'",' + #13 +
                '                        "'+NUMERO_CADASTRO_PESSOA+'": "'+DM.SQL_contas_receber_boletoCPF_CNPJ_Cliente.AsString+'"' + #13 +
                '                    }' + #13 +
                '                },' + #13 +
                '                "endereco": {' + #13 +
                '                    "nome_logradouro": "'+TrocaEComercialPorE(TiraAcentos(Copy(DM.SQL_contas_receber_boletoEndereco.AsString, 1, 40)))+ ', '+Copy(DM.SQL_contas_receber_boletoNumero.AsString, 1, 5)+'",' + #13 +
                '                    "nome_bairro": "'+TrocaEComercialPorE(TiraAcentos(Copy(DM.SQL_contas_receber_boletoBairro.AsString, 1, 40)))+'",' + #13 +
                '                    "nome_cidade": "'+TrocaEComercialPorE(TiraAcentos(Copy(DM.SQL_contas_receber_boletoCidade.AsString, 1, 40)))+'",' + #13 +
                '                    "sigla_UF": "'+DM.SQL_contas_receber_boletoUF.AsString+'",' + #13 +
                '                    "numero_CEP": "'+DM.SQL_contas_receber_boletoCEP.AsString+'"' + #13 +
                '                }' + #13 +
                '            },' + #13 +
                '            "dados_individuais_boleto": [{' + #13 +
                '                "numero_nosso_numero": "'+sNOSSO_NUMERO_ITAU+'",' + #13 +
                '                "data_vencimento": "'+DATA_VENCIMENTO+'",' + #13 +
                '                "valor_titulo": "'+VALOR_BOLETO+'",' + #13 +
                '                "texto_uso_beneficiario": "'+DM.SQL_contas_receber_boletoDetalhe_N_Parcela.AsString+'",' + #13 +
                '                "texto_seu_numero": "'+DM.SQL_contas_receber_boletoDetalhe_N_Documento.AsString+'"' + #13 +
                '            }],' + #13 +
                '            "multa": {' + #13 +
                '                "codigo_tipo_multa": "02",' + #13 +
                '                "quantidade_dias_multa": 1,' + #13 +
                '                "percentual_multa": "'+VALOR_MULTAS+'"' + #13 +
                '            },' + #13 +
                '            "juros": {' + #13 +
                '                "codigo_tipo_juros": 93,' + #13 +
                '                "quantidade_dias_juros": 1,' + #13 +
                '                "valor_juros": "'+VALOR_JUROS+'"' + #13 +
                '            },' + #13 +
                '            "recebimento_divergente": {' + #13 +
                '                "codigo_tipo_autorizacao": "03"' + #13 +
                '            },' + #13 +
               // '            "instrucao_cobranca": [' + #13 +
               // '                {' + #13 +
               // '                    "codigo_instrucao_cobranca": "4",' + #13 +
               // '                    "quantidade_dias_apos_vencimento":60,' + #13 +
               // '                    "dia_util":false' + #13 +
               // '                }        ' + #13 +
               // '            ],  ' + #13 +
                '            "protesto": {' + #13 +
                '                "protesto": 4,' + #13 +
                '                "quantidade_dias_protesto": 1' + #13 +
                '            },' + #13 +
                '            "negativacao": { ' + #13 +
                '                 "negativacao": 5, ' + #13 +
                '                 "quantidade_dias_negativacao": 1 ' + #13 +
                '             }, ' + #13 +
                '        ' + #13 +
                '            "desconto_expresso": false' + #13 +
                '        }' + #13 +
                '    }' + #13 +
                '}';

   ArquivoJSON          := '';
   ArquivoJSON          := JSON_BOLETO;
   sCAMINHGO_EXE        := (ExtractFilePath(ParamStr(0)) +'Boletos\LogsWebservice\');
   System.AssignFile(newFile, sCAMINHGO_EXE + Trim('Registro _Itau_'+sNOSSO_NUMERO_ITAU) + '.json');
   System.Rewrite(newFile);
   WriteLn(newFile, ArquivoJSON);
   System.CloseFile(newFile);

   RESULTADO_TOKEN  :='';
   access_token     :='';
   JSON_TOKEN       := 'grant_type=client_credentials&client_id='+ DM.SQL_busca_contaClientID.AsString+'&client_secret='+DM.SQL_busca_contaClientSecret.AsString;
   try
     HttpClient := TIdHTTP.Create( nil );
     SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
     HttpClient.IOHandler := SSL;
     JsonStreamEnvio   := TStringStream.Create(utf8Encode(JSON_TOKEN));
     DATA_HORA_TOKEN      :=DM.conecta.ExecSQLScalar('SELECT IFNULL(TIMESTAMPDIFF (MINUTE,Data_access_token,NOW()),8) AS QTD_Horas FROM configuracao_boleto where Codigo_Config_Boleto =:BANCO and CodLoja_Boleto =:COD_LOJA', [DM.COD_BANCO, DM.COD_LOJA]);
     if DATA_HORA_TOKEN >= 4 then
     begin
       with SSL.SSLOptions do
       begin
         CertFile     := ExtractFilePath(ParamStr(0)) +'Boletos\Certificado\Itau\ARQUIVO_CERTIFICADO.crt';
         KeyFile      := ExtractFilePath(ParamStr(0)) +'Boletos\Certificado\Itau\ARQUIVO_CHAVE_PRIVADA.key';
         Mode         := sslmUnassigned;
         Method       := sslvSSLv23;
         SSLVersions  := [sslvSSLv23];
       end;

       URL  :='essa url está no portal do developers itau';
       with HttpClient do
       begin
          Request.CharSet := 'utf-8';
          Request.Accept := '*/*';
          Request.AcceptEncoding := 'gzip, deflate, br';
          Request.CustomHeaders.Values['Content-Type'] := 'application/x-www-form-urlencoded';
          Request.CustomHeaders.Values['x-itau-flowID'] := DM.SQL_busca_contaClientID.AsString + 'd7';
          Request.CustomHeaders.Values['x-itau-correlationID'] := DM.SQL_busca_contaClientSecret.AsString;
          Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Maxthon; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)';
          HandleRedirects := True;
          HTTPOptions := [hoKeepOrigProtocol, hoInProcessAuth];
       end;

       try
         RESULTADO_TOKEN := HttpClient.Post(URL,JsonStreamEnvio);
          Except
       on E: Exception do
         begin
           ERRO_ITTAU      :='SIM';
           RESULTADO_TOKEN :=HttpClient.ResponseText;
           ArquivoJSON     :='';
           ArquivoJSON     := RESULTADO_TOKEN;
           sCAMINHGO_EXE   := (ExtractFilePath(ParamStr(0)) +'Boletos\LogsWebservice\');
           System.AssignFile(newFile, sCAMINHGO_EXE + Trim(sNOSSO_NUMERO_ITAU +'_erro_retorno_itau') + '.json');
           System.Rewrite(newFile);
           WriteLn(newFile, ArquivoJSON);
           System.CloseFile(newFile);
         end;
       end;

       if HttpClient.ResponseCode = 200 then
       begin
         access_token  :='';
         expires_in    :='';
         access_token  :=getCamposJsonString(RESULTADO_TOKEN, 'access_token');
         expires_in    :=getCamposJsonString(RESULTADO_TOKEN, 'expires_in');
         scope         :=getCamposJsonString(RESULTADO_TOKEN, 'scope');
         DM.conecta.ExecSQL('update configuracao_boleto set access_token =:TOKEN, Scope =:SCOPE, expires_in =:EXPIRA, Data_access_token =NOW() where Codigo_Config_Boleto =:BANCO and CodLoja_Boleto =:COD_LOJA', [access_token, scope, StrToInt(expires_in), DM.COD_BANCO, DM.COD_LOJA]);
       end
        else
       begin
         ERRO_ITTAU     :='SIM';
         ArquivoJSON    :='';
         ArquivoJSON    := RESULTADO_TOKEN;
         sCAMINHGO_EXE  := (ExtractFilePath(ParamStr(0)) +'Boletos\LogsWebservice\');
         System.AssignFile(newFile, sCAMINHGO_EXE + Trim(sNOSSO_NUMERO_ITAU +'_erro_retorno_itau') + '.json');
         System.Rewrite(newFile);
         WriteLn(newFile, ArquivoJSON);
         System.CloseFile(newFile);
       end;
     end
     else
     begin
       access_token  :='';
       access_token  :=DM.conecta.ExecSQLScalar('select IFNULL(access_token, "") AS token from configuracao_boleto where Codigo_Config_Boleto =:BANCO and CodLoja_Boleto =:COD_LOJA', [DM.COD_BANCO, DM.COD_LOJA]);
     end;

     if access_token <> '' then
     begin
        AResponseContent := TStringStream.Create('');
        JsonToSend := TStringStream.Create(JSON_BOLETO, TEncoding.UTF8);
        with SSL.SSLOptions do
        begin
          CertFile     := ExtractFilePath(ParamStr(0)) +'Boletos\Certificado\Itau\ARQUIVO_CERTIFICADO.crt';
          KeyFile      := ExtractFilePath(ParamStr(0)) +'Boletos\Certificado\Itau\ARQUIVO_CHAVE_PRIVADA.key';
          Mode         :=sslmUnassigned;
          Method       :=sslvSSLv23;
          SSLVersions  :=[sslvSSLv23];
        end;

        URL  :='está url está no portal do developers itau';
        with HttpClient do
        begin
           IOHandler :=IOHandler;
           Request.Clear;
           Request.CharSet := 'utf-8';
           Request.Accept := '*/*';
           Request.AcceptEncoding := 'gzip, deflate, br';
           Request.ContentType := 'application/json';
           Request.CustomHeaders.Values['Authorization'] :='Bearer '+access_token;
           Request.CustomHeaders.Values['x-itau-apikey'] :=DM.SQL_busca_contaClientID.AsString;
           Request.CustomHeaders.Values['x-itau-flowID'] :=DM.SQL_busca_contaClientID.AsString + 'd7';
           Request.CustomHeaders.Values['x-itau-correlationID'] := DM.SQL_busca_contaClientSecret.AsString;
           Request.UserAgent :='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Maxthon; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)';
           HandleRedirects := True;
           HTTPOptions := [hoKeepOrigProtocol, hoInProcessAuth];
        end;

        try
          RESULTADO_BOLETO   :='';
          RESULTADO_BOLETO   :=HttpClient.Post(URL, JsontoSend);
         except
          on E: Exception do
          begin
            ERRO_ITTAU       :='SIM';
            RESULTADO_BOLETO :=HttpClient.ResponseText;
            ArquivoJSON      :='';
            ArquivoJSON      := RESULTADO_BOLETO;
            sCAMINHGO_EXE    := (ExtractFilePath(ParamStr(0)) +'Boletos\LogsWebservice\');
            System.AssignFile(newFile, sCAMINHGO_EXE + Trim(sNOSSO_NUMERO_ITAU +'_erro_retorno_itau') + '.json');
            System.Rewrite(newFile);
            WriteLn(newFile, ArquivoJSON);
            System.CloseFile(newFile);
          end
        end;

        if HttpClient.ResponseCode = 200 then
        begin
           ArquivoJSON      :='';
           ArquivoJSON      := RESULTADO_BOLETO;
           sCAMINHGO_EXE    := (ExtractFilePath(ParamStr(0)) +'Boletos\LogsWebservice\');
           System.AssignFile(newFile, sCAMINHGO_EXE + Trim(sNOSSO_NUMERO_ITAU +'_retorno_itau') + '.json');
           System.Rewrite(newFile);
           WriteLn(newFile, ArquivoJSON);
           System.CloseFile(newFile);

           TextoOriginal    :='';
           valorTexto       :='';
           TextoOriginal    := RESULTADO_BOLETO;
           valorTexto       := Copy(TextoOriginal , Pos('numero_linha_digitavel', TextoOriginal) + 26, Length(TextoOriginal));
           LINHA_DIGITAVEL  :='';
           LINHA_DIGITAVEL  := Copy(valorTexto,1, 47);

           TextoOriginal    :='';
           valorTexto       :='';
           TextoOriginal    := RESULTADO_BOLETO;
           valorTexto       := Copy(TextoOriginal , Pos('codigo_barras', TextoOriginal) + 17, Length(TextoOriginal));
           COD_BARRA_BOLETO := '';
           COD_BARRA_BOLETO := Copy(valorTexto,1, 44);

           XMLTemporario.Append;
           XMLTemporarioNossoNumero.AsString     :=LINHA_DIGITAVEL;
            if Length(OnlyNumber(LINHA_DIGITAVEL)) = 47 then
           begin
             XMLTemporarioStatus.AsString        :='OK';
             XMLTemporarioObs.AsString           :='Boleto Registrado com Sucesso';
           end
           else
           begin
             ERRO_ITTAU                          :='SIM';
             XMLTemporarioStatus.AsString        :='ERRO';
             XMLTemporarioObs.AsString           :='Erro ao Registrar Boleto via API';
           end;
           XMLTemporarioNumeroDocumento.AsString :=NR_DOCUMENTO;
           XMLTemporarioParcela.AsInteger        :=NR_PARCELA;
           XMLTemporario.Post;
           XMLTemporario.Close;
           XMLTemporario.Open;
        end
        else
        begin
          ERRO_ITTAU       :='SIM';
          ArquivoJSON      :='';
          ArquivoJSON      := HttpClient.ResponseText;
          sCAMINHGO_EXE    := (ExtractFilePath(ParamStr(0)) +'Boletos\LogsWebservice\');
          System.AssignFile(newFile, sCAMINHGO_EXE + Trim(sNOSSO_NUMERO_ITAU +'_erro_retorno_itau') + '.json');
          System.Rewrite(newFile);
          WriteLn(newFile, ArquivoJSON);
          System.CloseFile(newFile);
        end;
     end;
   finally
     FreeAndNil(HttpClient);
     FreeAndNil(SSL);
   end;
end;

Link para o comentário
Compartilhar em outros sites

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