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.