Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Boa tarde.. 

Pessoal estou tentanto utilizar o registro online para o banco inter, antes de colocar no ambiente de produção estou tentando o ambiente de homologação, Já fiz meu cadastro no devolpers.inter já tenho os dados referente ao arquivos CRT, KEY e tambem clientId e ClientSecret, porem quando tento utilizar está me retornando erro 500.

No log:  URL: [POST] https://cdpj.partners.bancointer.com.br/oauth/v2/token
27/06/24 11:38:03:072 - Erro: HTTP_Code=500 Erro=client_id=... etc...

Fiquei desconfiado da url e fui procurar no ACBRBOLETOw_inter_API achei os seguintes endereços:

  C_URL             = 'https://cdpj.partners.bancointer.com.br/cobranca/v2';
  C_URL_HOM         = 'https://cdpj.partners.bancointer.com.br/cobranca/v2';

  C_URLPIX          = 'https://cdpj.partners.bancointer.com.br/cobranca/v3';
  C_URL_HOMPIX      = 'https://cdpj.partners.bancointer.com.br/cobranca/v3';

  C_URL_OAUTH_PROD  = 'https://cdpj.partners.bancointer.com.br/oauth/v2/token';
  C_URL_OAUTH_HOM   = 'https://cdpj.partners.bancointer.com.br/oauth/v2/token';

Mas na documentação pelo que pude entender os endereços são os seguintes:

Produção https://cdpj.partners.bancointer.com.br/oauth/v2/token

SANDBOX: https://cdpj-sandbox.partners.uatinter.co/oauth/v2/token

Neste caso SANDBOX seria o de homologação?   Ja fiz uma pesquisa aqui no forum e configurei conforme as seguintes informações: https://www.projetoacbr.com.br/forum/topic/57991-acbrboleto-via-webservice/?do=findComment&comment=458837&_rid=47763

mas não consegui passar deste ponto.

Agradeço qualquer ajuda...

 

 

 

Postado
45 minutos atrás, Juliomar Marchetti disse:

exato sandbox é homologação ou ambiente de testes.

mas o problema pode ser no acesso veja se tu não tem firewall ou proxy

e valida quanto tempo demora pra liberar as credenciais

Juliomar, desativei temporariamente o firewall e não uso proxy, uma pergunta, a url de autenticação em homologação no acbr está assim: 

C_URL_OAUTH_HOM   = 'https://cdpj.partners.bancointer.com.br/oauth/v2/token'

E na documentação está assim: 

https://cdpj-sandbox.partners.uatinter.co/oauth/v2/token

Não seria este o problema? ou não é do componente ACBRBOLETOw_inter_API.pas que busca estas informações?

Postado
13 minutos atrás, navegador_1000 disse:

Juliomar, desativei temporariamente o firewall e não uso proxy, uma pergunta, a url de autenticação em homologação no acbr está assim: 

C_URL_OAUTH_HOM   = 'https://cdpj.partners.bancointer.com.br/oauth/v2/token'

E na documentação está assim: 

https://cdpj-sandbox.partners.uatinter.co/oauth/v2/token

Não seria este o problema? ou não é do componente ACBRBOLETOw_inter_API.pas que busca estas informações?

seu erro é certificado, vc baixou e ativou no portal da conta ?

Postado
27 minutos atrás, Antonio Gomes disse:

seu erro é certificado, vc baixou e ativou no portal da conta ?

Sim, peguei o arquivo crt: C:\BANCOINTER\Sandbox_InterAPI_Certificado.crt, o arquivo key: C:\BANCOINTER\Sandbox_InterAPI_Chave.key e as duas informações do cedenteWS: ClientID e ClientSercret. No key user usei o conforme o manual: client_credentials e no scope: boleto-cobranca.write. Tentei na versãoDF como V2, não rolou ai tentei como V3. tambem não funcionou. 

Provavelmente esta me passando algum detalhe. Ja revisei mas não encontro. Tipo o erro parece estar relacionado a autenticação, mas já tentei de varias formas diferentes e não mudou. 

CONFIG.png

Postado

Boa tarde... Estou precisando resolver este detalhe, alguém tem alguma sugestão? Tentei em produção também mas não fui feliz. Vi que ali no certificado o nosso suporte tinha configurado para c:\bancointer\ca.crt ai tirei fora porque não tem nada haver, mas ai mudou o erro para 400 entretanto é só isso que retorna no log:   

28/06/24 15:29:13:102 - Autenticando Token... 
28/06/24 15:29:13:103 - Comando Enviar: TOAuth
28/06/24 15:29:13:110 - URL: [POST] https://cdpj.partners.bancointer.com.br/oauth/v2/token
28/06/24 15:29:13:628 - Erro: HTTP_Code=400 Erro=
28/06/24 15:29:13:629 - Falha Envio: Falha na Autenticação: HTTP_Code=400 Erro=

Eu tentei pelo componente de exemplo acbrBoleto, mas lá não consegui fazer funcionar,  não encontrei onde clocar o arquivo CRT e key, acho que por isso. Sei que funciona até porque já vi bastante gente comentando aqui no forum, mas estou pecando em alguma configuração... Qualquer ajuda é bem vinda... 

 

 

  • Moderadores
Postado
Em 27/06/2024 at 17:52, navegador_1000 disse:

Sim, peguei o arquivo crt: C:\BANCOINTER\Sandbox_InterAPI_Certificado.crt, o arquivo key: C:\BANCOINTER\Sandbox_InterAPI_Chave.key e as duas informações do cedenteWS: ClientID e ClientSercret. No key user usei o conforme o manual: client_credentials e no scope: boleto-cobranca.write. Tentei na versãoDF como V2, não rolou ai tentei como V3. tambem não funcionou. 

Provavelmente esta me passando algum detalhe. Ja revisei mas não encontro. Tipo o erro parece estar relacionado a autenticação, mas já tentei de varias formas diferentes e não mudou. 

CONFIG.png

mas não usa capicom. é openssl jovem e só define o ssslib e ssltype os demais saca , remove tira, exclui. o componente sabe através das duas propriedades

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

  • Membros Pro
Postado

Boa tarde

Eu estava recebendo o Erro: 10060 Http_code=0 em Produção hoje de manhã mas agora normalizou, pode ser alguma instabilidade no inter

Porem em produção.

Att

Ralty

  • Curtir 1
Postado
Em 28/06/2024 at 15:56, navegador_1000 disse:

Boa tarde... Estou precisando resolver este detalhe, alguém tem alguma sugestão? Tentei em produção também mas não fui feliz. Vi que ali no certificado o nosso suporte tinha configurado para c:\bancointer\ca.crt ai tirei fora porque não tem nada haver, mas ai mudou o erro para 400 entretanto é só isso que retorna no log:   

28/06/24 15:29:13:102 - Autenticando Token... 
28/06/24 15:29:13:103 - Comando Enviar: TOAuth
28/06/24 15:29:13:110 - URL: [POST] https://cdpj.partners.bancointer.com.br/oauth/v2/token
28/06/24 15:29:13:628 - Erro: HTTP_Code=400 Erro=
28/06/24 15:29:13:629 - Falha Envio: Falha na Autenticação: HTTP_Code=400 Erro=

Eu tentei pelo componente de exemplo acbrBoleto, mas lá não consegui fazer funcionar,  não encontrei onde clocar o arquivo CRT e key, acho que por isso. Sei que funciona até porque já vi bastante gente comentando aqui no forum, mas estou pecando em alguma configuração... Qualquer ajuda é bem vinda... 

 

 

aquele campo certificado ali, esta sendo passado? pois, olhando meu fonte aqui, so passa 2 arquivos, e é o que eles geram.

assim:  

  FACbrBoleto.Configuracoes.WebService.ArquivoCRT := FCertificadoCrt;
          FACbrBoleto.Configuracoes.WebService.ArquivoKEY := FCertificadoKey;
  

 AACBrBoleto.Configuracoes.WebService.Ambiente     := TpcnTipoAmbiente.taProducao;
  AACBrBoleto.Configuracoes.WebService.Operacao     := TOperacao.tpInclui;
  AACBrBoleto.Configuracoes.WebService.Certificado  := '';
  AACBrBoleto.Configuracoes.WebService.ChavePrivada := '';
  AACBrBoleto.Configuracoes.WebService.VersaoDF     := '1.2';

  // TSSLCryptLib = (cryNone, cryOpenSSL, cryCapicom, cryWinCrypt);
  AACBrBoleto.Configuracoes.WebService.SSLHttpLib := TSSLHttpLib(ADSServico.FieldByName('API_SSLHTTPLIB_SER').AsInteger);

  AACBrBoleto.Configuracoes.WebService.SSLCryptLib        := cryNone;
  AACBrBoleto.Configuracoes.WebService.SSLDgst            := dgstSHA1;
  AACBrBoleto.Configuracoes.WebService.SSLHttpLib         := httpOpenSSL;
  AACBrBoleto.Configuracoes.WebService.SSLType            := LT_TLSv1_2;
  AACBrBoleto.Configuracoes.WebService.SSLType            := LT_TLSv1_2;
  AACBrBoleto.Configuracoes.WebService.SSLXmlSignLib      := xsNone;
  AACBrBoleto.Configuracoes.WebService.UseCertificateHTTP := True;

  AACBrBoleto.Cedente.CedenteWS.IndicadorPix := true;
  AACBrBoleto.Cedente.CedenteWS.ClientID     := ADSServico.FieldByName('CLIENT_ID_SER').AsString;
  AACBrBoleto.Cedente.CedenteWS.ClientSecret := ADSServico.FieldByName('CLIENT_SECRET_SER').AsString;
  AACBrBoleto.Cedente.CedenteWS.KeyUser      := ADSServico.FieldByName('KEY_USER_SER').AsString;
  AACBrBoleto.Cedente.CedenteWS.Scope        := ADSServico.FieldByName('SCOPE_SER').AsString;

confere com o seu

Postado
Em 01/07/2024 at 18:40, Antonio Gomes disse:

aquele campo certificado ali, esta sendo passado? pois, olhando meu fonte aqui, so passa 2 arquivos, e é o que eles geram.

assim:  

  FACbrBoleto.Configuracoes.WebService.ArquivoCRT := FCertificadoCrt;
          FACbrBoleto.Configuracoes.WebService.ArquivoKEY := FCertificadoKey;
  

 AACBrBoleto.Configuracoes.WebService.Ambiente     := TpcnTipoAmbiente.taProducao;
  AACBrBoleto.Configuracoes.WebService.Operacao     := TOperacao.tpInclui;
  AACBrBoleto.Configuracoes.WebService.Certificado  := '';
  AACBrBoleto.Configuracoes.WebService.ChavePrivada := '';
  AACBrBoleto.Configuracoes.WebService.VersaoDF     := '1.2';

  // TSSLCryptLib = (cryNone, cryOpenSSL, cryCapicom, cryWinCrypt);
  AACBrBoleto.Configuracoes.WebService.SSLHttpLib := TSSLHttpLib(ADSServico.FieldByName('API_SSLHTTPLIB_SER').AsInteger);

  AACBrBoleto.Configuracoes.WebService.SSLCryptLib        := cryNone;
  AACBrBoleto.Configuracoes.WebService.SSLDgst            := dgstSHA1;
  AACBrBoleto.Configuracoes.WebService.SSLHttpLib         := httpOpenSSL;
  AACBrBoleto.Configuracoes.WebService.SSLType            := LT_TLSv1_2;
  AACBrBoleto.Configuracoes.WebService.SSLType            := LT_TLSv1_2;
  AACBrBoleto.Configuracoes.WebService.SSLXmlSignLib      := xsNone;
  AACBrBoleto.Configuracoes.WebService.UseCertificateHTTP := True;

  AACBrBoleto.Cedente.CedenteWS.IndicadorPix := true;
  AACBrBoleto.Cedente.CedenteWS.ClientID     := ADSServico.FieldByName('CLIENT_ID_SER').AsString;
  AACBrBoleto.Cedente.CedenteWS.ClientSecret := ADSServico.FieldByName('CLIENT_SECRET_SER').AsString;
  AACBrBoleto.Cedente.CedenteWS.KeyUser      := ADSServico.FieldByName('KEY_USER_SER').AsString;
  AACBrBoleto.Cedente.CedenteWS.Scope        := ADSServico.FieldByName('SCOPE_SER').AsString;

confere com o seu

Bom dia Antonio. Obrigado por compartilhar esse trecho ajudou bastante. 

Primeiramente o problema maior estava bem onde você falou, ao passar o certificado ali abaixo ele apagava o FACbrBoleto.Configuracoes.WebService.ArquivoCRT e ao passar a senha ele apagava o FACbrBoleto.Configuracoes.WebService.ArquivoKEY. 

Configurei exatamente igual ao seu e fiz o teste. Em ambiente de homologação não funciona, acredito que o motivo para não funcionar em homologação é o caminho da url de consumo do componente incompatível com o do manual:

No componente acbr: 

C_URL_OAUTH_HOM   = 'https://cdpj.partners.bancointer.com.br/oauth/v2/token'

No manual:

https://cdpj-sandbox.partners.uatinter.co/oauth/v2/token

 

Em produção:  Em produção ele enviou o boleto pela função

ok := ACBrBoleto1.Enviar;

Entretanto o retorno é false. Pelo que pude notar pelo log ele conseguiu enviar mas quando efetuou a consulta deu erro.

03/07/24 08:35:25:306 - Autenticando Token... 
03/07/24 08:35:25:307 - Comando Enviar: TOAuth
03/07/24 08:35:25:321 - URL: [POST] https://cdpj.partners.bancointer.com.br/oauth/v2/token
03/07/24 08:35:25:661 - Validade: 03/07/2024 09:35:25
03/07/24 08:35:25:661 - Comando Enviar: TBoletoW_Inter_API
03/07/24 08:35:25:670 - Comando Enviar: {"seuNumero":"0000000055-001","valorNominal":3,"dataVencimento":"2024-08-02","numDiasAgenda":10,"pagador":{"cpfCnpj":"XXXXXXXXXXXX","tipoPessoa":"JURIDICA","nome":"TESTE LTDA","endereco":"RUA JACUÍ","numero":"3089","complemento":"","bairro":"NOVA FLORESTA","cep":"31140000","cidade":"BELO HORIZONTE","uf":"MG","telefone":"0","email":""}}
03/07/24 08:35:25:679 - URL: [POST] https://cdpj.partners.bancointer.com.br/cobranca/v3/cobrancas
03/07/24 08:35:26:247 - Retorno Envio: TBoletoW_Inter_API
03/07/24 08:35:26:248 - Código do Envio: 200 1.1 OK

03/07/24 08:35:26:257 - Autenticando Token... 
03/07/24 08:35:26:266 - Comando Enviar: TBoletoW_Inter_API
03/07/24 08:35:26:275 - Comando Enviar: {"seuNumero":"0000000055-001","valorNominal":3,"dataVencimento":"2024-08-02","numDiasAgenda":10,"pagador":{"cpfCnpj":"XXXXXXXXXXXX","tipoPessoa":"JURIDICA","nome":"TESTE LTDA","endereco":"RUA JACUÍ","numero":"3089","complemento":"","bairro":"NOVA FLORESTA","cep":"31140000","cidade":"BELO HORIZONTE","uf":"MG","telefone":"0","email":""}}
03/07/24 08:35:26:284 - URL: [GET] https://cdpj.partners.bancointer.com.br/cobranca/v3/cobrancas/4e07ac49-XXXX-4fae-YYYY-9444444444444
03/07/24 08:35:26:336 - Retorno Envio: TBoletoW_Inter_API
03/07/24 08:35:26:336 - Código do Envio: 403 1.1 Forbidden

 

Pelo que pesquisei no forum se o indicador de PIX estiver marcado como true ele usa a V3. Então não entendi porque na autenticação usou

03/07/24 08:35:25:321 - URL: [POST] https://cdpj.partners.bancointer.com.br/oauth/v2/token

Agora conto com sua ajuda para resolver essa outra etapa que é o motivo de estar conseguindo enviar mas estar retornando false.

o tratamento do retorno estou usando assim: 

if (ok) then
      Begin
        for i:= 0 to Pred(ACBrBoleto.TotalListaRetornoWeb) do
        begin
          StrPCopy(retSev.FBarras, (ACBrBoleto.ListaRetornoWeb[i].DadosRet.TituloRet.CodBarras));
          StrPCopy(retSev.FLinhaDig, (ACBrBoleto.ListaRetornoWeb[i].DadosRet.TituloRet.CodBarras));
          StrPCopy(retSev.FLinhaURL, (ACBrBoleto.ListaRetornoWeb[i].DadosRet.TituloRet.LinhaDig));
          StrPCopy(retSev.FURLpix, (ACBrBoleto.ListaRetornoWeb[i].DadosRet.TituloRet.UrlPix));
          StrPCopy(retSev.FTXid, (ACBrBoleto.ListaRetornoWeb[i].DadosRet.TituloRet.TxId));
          StrPCopy(retSev.FuUid, (ACBrBoleto.ListaRetornoWeb[i].DadosRet.TituloRet.NossoNumeroCorrespondente));
          StrPCopy(retSev.FEmv, (ACBrBoleto.ListaRetornoWeb[i].DadosRet.TituloRet.EMV));
          StrPCopy(retSev.FPahtFileRet, (fileName));
        end;
        StrPCopy(Result, 'OK');
      End
      ....

 

Neste caso coo retorna false nem entra no teste.

 

 

  • Moderadores
Postado
19 minutos atrás, navegador_1000 disse:

Configurei exatamente igual ao seu e fiz o teste. Em ambiente de homologação não funciona, acredito que o motivo para não funcionar em homologação é o caminho da url de consumo do componente incompatível com o do manual:

No componente acbr: 

C_URL_OAUTH_HOM   = 'https://cdpj.partners.bancointer.com.br/oauth/v2/token'

No manual:

https://cdpj-sandbox.partners.uatinter.co/oauth/v2/token

tu pode mudar localmente os endereços e testar

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Postado
3 minutos atrás, Juliomar Marchetti disse:

tu pode mudar localmente os endereços e testar

Vou fazer o teste Juliomar. Só não fiz antes porque como era dentro do ACBRBOLETOw_inter_API não sabia se tenho que recompilar todo o pacote.

Postado
4 horas atrás, Juliomar Marchetti disse:

tem que recompilar todo o acbr com o instalador

Fiz a mudança e testei, funcionou em homologação com os novos endereços, se quiser atualizar para o ACBRBOLETOw_inter_API 

const
  C_URL             = 'https://cdpj.partners.bancointer.com.br/cobranca/v2';
  C_URL_HOM         = 'https://cdpj.partners.bancointer.com.br/cobranca/v2';

  C_URLPIX          = 'https://cdpj.partners.bancointer.com.br/cobranca/v3';
  //C_URL_HOMPIX      = 'https://cdpj.partners.bancointer.com.br/cobranca/v3';
  C_URL_HOMPIX      = 'https://cdpj-sandbox.partners.uatinter.co/cobranca/v3';

  C_URL_OAUTH_PROD  = 'https://cdpj.partners.bancointer.com.br/oauth/v2/token';
  //C_URL_OAUTH_HOM   = 'https://cdpj.partners.bancointer.com.br/oauth/v2/token';
  C_URL_OAUTH_HOM   = 'https://cdpj-sandbox.partners.uatinter.co/oauth/v2/token';  

 

Só que agora estou enfrentando o mesmo problema da produção, aparentemente o enviar gera o boleto e posteriormente efetua a consulta.

A geração do boleto está perfeita, mas quando efetua a consulta ocorre o problema e não retorna as informações. Vou tentar mudar o timeout quem sabe é isso.

Segue o log:

03/07/24 14:00:09:944 - Autenticando Token... 
03/07/24 14:00:09:944 - Comando Enviar: TOAuth
03/07/24 14:00:09:952 - URL: [POST] https://cdpj-sandbox.partners.uatinter.co/oauth/v2/token
03/07/24 14:00:11:453 - Validade: 03/07/2024 15:00:11
03/07/24 14:00:11:453 - Comando Enviar: TBoletoW_Inter_API
03/07/24 14:00:11:461 - Comando Enviar: {"seuNumero":"0000000005-001","valorNominal":3,"dataVencimento":"2024-08-02","numDiasAgenda":10,"pagador":{"cpfCnpj":"9444027XXXXXX","tipoPessoa":"JURIDICA","nome":"TESTE LTDA","endereco":"RUA JACUÍ","numero":"3089","complemento":"","bairro":"NOVA FLORESTA","cep":"31140302","cidade":"BELO HORIZONTE","uf":"MG","telefone":"0","email":""}}
03/07/24 14:00:11:468 - URL: [POST] https://cdpj-sandbox.partners.uatinter.co/cobranca/v3/cobrancas
03/07/24 14:00:12:541 - Retorno Envio: TBoletoW_Inter_API
03/07/24 14:00:12:541 - Código do Envio: 200 1.1 OK

03/07/24 14:00:12:549 - Autenticando Token... 
03/07/24 14:00:12:556 - Comando Enviar: TBoletoW_Inter_API
03/07/24 14:00:12:563 - Comando Enviar: {"seuNumero":"0000000005-001","valorNominal":3,"dataVencimento":"2024-08-02","numDiasAgenda":10,"pagador":{"cpfCnpj":"9444027XXXXXX","tipoPessoa":"JURIDICA","nome":"TESTE LTDA","endereco":"RUA JACUÍ","numero":"3089","complemento":"","bairro":"NOVA FLORESTA","cep":"31140302","cidade":"BELO HORIZONTE","uf":"MG","telefone":"0","email":""}}
03/07/24 14:00:12:570 - URL: [GET] https://cdpj-sandbox.partners.uatinter.co/cobranca/v3/cobrancas/0e8b4388-0502-49d8-8625-dffd27f997b6
03/07/24 14:00:12:734 - Retorno Envio: TBoletoW_Inter_API
03/07/24 14:00:12:734 - Código do Envio: 403 1.1 Forbidden

 

Postado

Agora na parte da tarde peguei para dar uma olhada no código e uma parte achei problemática:

 

function TBoletoW_Inter_API.Enviar: boolean;
var
  LJsonObject : TACBrJSONObject;
begin
  Result := inherited Enviar;

  (*
  Tratamento automatico qdo tpINCLUI com pix.
  Entao ele vai enviar capturar a reposta para pegar o codigoSolicitacao e realizar uma consulta
  detalhe automaticamente para retornar o boleto com QrCODE
  *)

  ***OBSERVE AQUI ESSE TRECHO ABAIXO *****************    
  if (Boleto.Cedente.CedenteWS.IndicadorPix) and (Boleto.Configuracoes.WebService.Operacao = tpInclui) then
  begin
    try
      LJsonObject := TACBrJSONObject.Parse( FRetornoWS );
      if NaoEstaVazio(LJsonObject.AsString['codigoSolicitacao']) then
      begin
        ATitulo.NossoNumeroCorrespondente := LJsonObject.AsString['codigoSolicitacao'];
        Boleto.Configuracoes.WebService.Operacao := tpConsultaDetalhe;
        GerarDados;
        Result := inherited Enviar;
      end;
  ***************************************************** 

    finally
      LJsonObject.Free;
      Boleto.Configuracoes.WebService.Operacao := tpInclui;
    end;
  end;
end;

Ali onde coloquei para observar é que ocorre o problema.

Nesta parte inicial   Result := inherited Enviar;   é Feita a autenticação e o boleto é enviado com sucesso.

Neste trecho: if (Boleto.Cedente.CedenteWS.IndicadorPix) and ...      o sistema vai fazer a consulta usando  o nosso numero correspondente, ou seja se este numero é retornado o titulo foi processado com sucesso. Só que ao enviar  Result := inherited Enviar;  para consultar o título da erro.

Acho que essa consulta talvez ficando separada do método enviar seria mais correto. Pois ela vai retornar false mesmo o titulo tendo sido processado pelo banco.

Claro para impressão do boleto é necessário realiza-la mas, em si o envio foi feito. Entao se estiver fora acho que possibilita mandar um cancelamento caso nao se consiga consultar o titulo. 

Bom mas resumindo não consigo compreeder porque para mim esta retornando erro e os outro funciona, acredito que vocês devem estar usando sem indicador de pix, e assim não entram neste teste para enviar a consulta indo para a V2 em vez da V3.

Outro detalhe após enviar o titulo e ocorrer o erro através do componente mandei a consulta separada usando postman e retorno certo as informações do titulo. Debuguei até a parte da execução e parece tudo certo no código, sinceramente não sei porque a consulta não é processada, mas o retorno: é faltando escopos necessarios.

No site do inter tem a seguinte informação: O boleto emitido estará disponível para consulta e pagamento, após um tempo apróximado de 5 minutos da sua inclusão. Esse tempo é necessário para o registro do boleto na CIP.

Mas mandei a consulta logo ao final através do postman e foi então tambem não acho que seja isso. o Beear foi adicionado ao header ... Então já não sei mais... 

 

Postado
14 horas atrás, navegador_1000 disse:

Agora na parte da tarde peguei para dar uma olhada no código e uma parte achei problemática:

 

function TBoletoW_Inter_API.Enviar: boolean;
var
  LJsonObject : TACBrJSONObject;
begin
  Result := inherited Enviar;

  (*
  Tratamento automatico qdo tpINCLUI com pix.
  Entao ele vai enviar capturar a reposta para pegar o codigoSolicitacao e realizar uma consulta
  detalhe automaticamente para retornar o boleto com QrCODE
  *)

  ***OBSERVE AQUI ESSE TRECHO ABAIXO *****************    
  if (Boleto.Cedente.CedenteWS.IndicadorPix) and (Boleto.Configuracoes.WebService.Operacao = tpInclui) then
  begin
    try
      LJsonObject := TACBrJSONObject.Parse( FRetornoWS );
      if NaoEstaVazio(LJsonObject.AsString['codigoSolicitacao']) then
      begin
        ATitulo.NossoNumeroCorrespondente := LJsonObject.AsString['codigoSolicitacao'];
        Boleto.Configuracoes.WebService.Operacao := tpConsultaDetalhe;
        GerarDados;
        Result := inherited Enviar;
      end;
  ***************************************************** 

    finally
      LJsonObject.Free;
      Boleto.Configuracoes.WebService.Operacao := tpInclui;
    end;
  end;
end;

Ali onde coloquei para observar é que ocorre o problema.

Nesta parte inicial   Result := inherited Enviar;   é Feita a autenticação e o boleto é enviado com sucesso.

Neste trecho: if (Boleto.Cedente.CedenteWS.IndicadorPix) and ...      o sistema vai fazer a consulta usando  o nosso numero correspondente, ou seja se este numero é retornado o titulo foi processado com sucesso. Só que ao enviar  Result := inherited Enviar;  para consultar o título da erro.

Acho que essa consulta talvez ficando separada do método enviar seria mais correto. Pois ela vai retornar false mesmo o titulo tendo sido processado pelo banco.

Claro para impressão do boleto é necessário realiza-la mas, em si o envio foi feito. Entao se estiver fora acho que possibilita mandar um cancelamento caso nao se consiga consultar o titulo. 

Bom mas resumindo não consigo compreeder porque para mim esta retornando erro e os outro funciona, acredito que vocês devem estar usando sem indicador de pix, e assim não entram neste teste para enviar a consulta indo para a V2 em vez da V3.

Outro detalhe após enviar o titulo e ocorrer o erro através do componente mandei a consulta separada usando postman e retorno certo as informações do titulo. Debuguei até a parte da execução e parece tudo certo no código, sinceramente não sei porque a consulta não é processada, mas o retorno: é faltando escopos necessarios.

No site do inter tem a seguinte informação: O boleto emitido estará disponível para consulta e pagamento, após um tempo apróximado de 5 minutos da sua inclusão. Esse tempo é necessário para o registro do boleto na CIP.

Mas mandei a consulta logo ao final através do postman e foi então tambem não acho que seja isso. o Beear foi adicionado ao header ... Então já não sei mais... 

 

Achei o galho... sofri para achar mas achei, como o próprio erro dizia faltando escopos necessarios   eu estava mandando: boleto-cobranca.write  e pelo postman eu estava usando todos extrato.read boleto-cobranca.read boleto-cobranca.write, é evidente a consulta precisa dos outros...  Vou só tirear os comentários e ja posto o fonte com a correção do endereço de homologação... Obrigado a todos...

Postado
10 horas atrás, navegador_1000 disse:

Achei o galho... sofri para achar mas achei, como o próprio erro dizia faltando escopos necessarios   eu estava mandando: boleto-cobranca.write  e pelo postman eu estava usando todos extrato.read boleto-cobranca.read boleto-cobranca.write, é evidente a consulta precisa dos outros...  Vou só tirear os comentários e ja posto o fonte com a correção do endereço de homologação... Obrigado a todos...

é, isso é um porre mesmo, eu botei tudo que o cliente ativou na epoca, e mandava em producao mesmo, o cliente cancelava o boleto depois. ou eu mesmo. Muitos em debug, se perderam, dai o cliente cancelava.

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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