Ir para conteúdo
  • Cadastre-se

dev botao

ACBRBOLETO : Retorno API Banco do Brasil = ErrorCode=10060


Ver Solução Respondido por Victor H. Gonzales - Panda,

Recommended Posts

  • Membros Pro
Postado

Companheiros

Estou desenvolvendo recurso para Registro Automático de Duplicatas nas APIs de Cobrança Bancária utilizando o AcbrBoleto.

Estou efetuando diversos testes para me certificar que o processo de transmissão está totalmente confiável, inclusive 
com tratamento amigável dos erros.

Para forçar retorno com erro resolvi zerar o conteúdo do campo do Cep do Cedente e fazer uma transmissão.

Como resultado disto fui surpreendido pelo seguinte retor ( no Arquivo de Log ) :
image.thumb.png.8007b2dc6bd17374d6122bbd1cb0c5a9.png

Notem que temos : 
- ErrorCode=10060
- Retorno Envio: ( não foi informado )

Sabem me dizer porque a resposta da API ocorreu desta forma ?

O normal não seria a Api informar que a Duplicata foi rejeitada e exibir as sub-ocorrências ?

Grato
 

  • Consultores
Postado

10060 geralmente é timeout... tenta aumentar o valor

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"

  • Membros Pro
Postado

Sr. Daniel

Bom Dia!

Eu constatei que a Duplicata tinha sido corretamente registrada no Banco do Brasil.

O problema foi portanto na resposta da API para a nossa Aplicação, resultando no ErrorCode : 10060.

Assim eu não consegui tratar o retorno e atualizar a Duplicata ( com NossoNúmero, Nro Cod. Barras, Nro. Linha  Digitável ).
 
Seguindo sua orientação eu aumentei o TimeOut de 5000 para 100000 !

Porém, pensando na possibilidade deste erro ocorrer novamente teria trata-lo logo após o Método Enviar ?

Grato
 

  • Consultores
Postado

Se ocorreu erro de Timeout, mas o banco recepcionou a requisição, você tem que consultar pelo método de consulta detalhe

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"

  • Membros Pro
Postado

Sr. Vitor

Resumindo a rotina de Envio da Duplicata , eu formatei o tratamento do Retorno da API do Banco da seguinte forma :

a)-Efetuo o Envio da Duplicata à API do Banco do Brasil
b)-Se HTTPResultCode entre 400 a 499 : (Servidor Nâo Consegue não pode Concluir solicitação ou Sintaxe Errada):
   Gravo Log de : 'Falha de Comunicação com o Banco'
c)-Se HTTPResultCode entre 500 a 499 : (Servidor falhou em Concluir solicitação):
   Gravo Log de : 'Falha de Comunicação com o Banco'
d)-Se HTTPResultCode entre 200 a 299 : (Servidor recebeu a solicitação e enviou a resposta esperada):
   - Se não existir nenhuma Sub-Ocorrência registrada em : ListaRetornoWeb[i].ListaRejeicao :
     Gravo Log de : 'Entrada Confirmada'
   - Se existir Sub-Ocorrência registrada em : ListaRetornoWeb[i].ListaRejeicao :
     Gravo Log de : 'Entrada Rejeitada'
e)-E finalmente existe aquela situação em que o Servidor retorna :   
   HTTPResultCode = Nulo
   ErrorCode               = 10060

   ( Isto ocorre mesmo se eu aumentar o valor de TimeOut de 5000 para 100000 ).
   No Banco do Brasil, esta situação sempre ocorre quando algum valor obrigatório está indo errado.
   ( Por exemplo : eu enviei um Cep do Sacado = '00000000'. )
   Neste caso estou procedendo da seguinte forma quando ocorre esta situação :
   Após o Envio realizo a Consulta da Duplicata :
   - Se HTTPResultCode = 200 : Registro Log como 'Entrada Confirmada'
   - Se HTTPResultCode = Nulo: Registro Log como 'Falha de Comunicação com o Banco'
   Para melhorar esta situação vou tentar validar ( antes do envio ) todas informações que possam resultar em erro.
   
O senhor consegue ver alguma outra forma possível de tratamento do retorno que não está compreendida nos Itens acima ?   

Grato

  • Consultores
  • Solution
Postado
14 minutos atrás, AnDes Sistemas disse:

Sr. Vitor

Resumindo a rotina de Envio da Duplicata , eu formatei o tratamento do Retorno da API do Banco da seguinte forma :

a)-Efetuo o Envio da Duplicata à API do Banco do Brasil
b)-Se HTTPResultCode entre 400 a 499 : (Servidor Nâo Consegue não pode Concluir solicitação ou Sintaxe Errada):
   Gravo Log de : 'Falha de Comunicação com o Banco'
c)-Se HTTPResultCode entre 500 a 499 : (Servidor falhou em Concluir solicitação):
   Gravo Log de : 'Falha de Comunicação com o Banco'
d)-Se HTTPResultCode entre 200 a 299 : (Servidor recebeu a solicitação e enviou a resposta esperada):
   - Se não existir nenhuma Sub-Ocorrência registrada em : ListaRetornoWeb[i].ListaRejeicao :
     Gravo Log de : 'Entrada Confirmada'
   - Se existir Sub-Ocorrência registrada em : ListaRetornoWeb[i].ListaRejeicao :
     Gravo Log de : 'Entrada Rejeitada'
e)-E finalmente existe aquela situação em que o Servidor retorna :   
   HTTPResultCode = Nulo
   ErrorCode               = 10060

   ( Isto ocorre mesmo se eu aumentar o valor de TimeOut de 5000 para 100000 ).
   No Banco do Brasil, esta situação sempre ocorre quando algum valor obrigatório está indo errado.
   ( Por exemplo : eu enviei um Cep do Sacado = '00000000'. )
   Neste caso estou procedendo da seguinte forma quando ocorre esta situação :
   Após o Envio realizo a Consulta da Duplicata :
   - Se HTTPResultCode = 200 : Registro Log como 'Entrada Confirmada'
   - Se HTTPResultCode = Nulo: Registro Log como 'Falha de Comunicação com o Banco'
   Para melhorar esta situação vou tentar validar ( antes do envio ) todas informações que possam resultar em erro.
   
O senhor consegue ver alguma outra forma possível de tratamento do retorno que não está compreendida nos Itens acima ?   

Grato

HTTPResultCode nunca deveria retornar nulo, no minimo como 0, pois é um integer.

o ErrorCode 10060 geralmente está ligado a timeout, o Banco em alguns casos vai receber esse boleto, e quando você tentar enviar novamente vai dizer que o nosso numero já existe.

Não sei se é percepção minha, mas a incidência disso é maior no final de mês e as sextas feiras.

Se isso ocorrer, você terá que fazer uma consulta detalhe para ter as informações desse titulo.

Se o titulo não existir no Banco, você pode simplesmente enviar o teu fluxo de registro normalmente.

Se tu enviar um CEP errado, e isso for uma informação requerida, ele deveria retornar BADRequest e/ou não registrar o boleto.

A situação que estou pontuando, é quando você está enviando corretamente, e ele simplesmente não retorna nada para você, já vi isso ocorrendo até mesmo no postman, de voce enviar a informação e o sistema bancario estar com uma lentidão e retornar erro de timeout.

 

Porem, se você consegue pontualmente gerar um erro, e esse erro está retornando uma mensagem diferente do que o banco está retornando, anexa o arquivo de log para analisarmos e tratarmos esse retorno.

 

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"

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