Luciano Rodrigues Pereira Postado 6 Agosto Postado 6 Agosto Estou com um problema ao tentar registrar um boleto que vem com o retorno de "Boleto já registrado". Mandando registrar um a um tudo bem, é fácil, eu resolvo. O problema é quando eu vou mandar registrar por exemplo 1000 boletos. Eu preciso saber quais boletos ele informa que já estão registrados, para eu comparar com a informação do boleto do meu BD, e caso realmente seja o mesmo boleto, eu atualizo a informação no meu BD com os dados do registro. Como eu pego essa informação de boleto já registrado quando estou enviando um comando de Registrar Boleto (tpInclui)? Porque na verdade vai retornar com um erro. Mas o código de erro? Me parece que não existe um padrão entre os bancos. Pelo retorno do ACBr ( RetornoDetalhe:= dmBol.Boleto.ListaRetornoWeb[0]; ) eu consigo? existe alguma padronização? Meu problema todo é a falta de padronização dos bancos. Se cada banco trouxer um código diferente de erro para a tentativa de registrar um boleto já registrado, como vou saber?
Moderadores Juliomar Marchetti Postado 6 Agosto Moderadores Postado 6 Agosto Bom tu não disse qual banco então para sua informação um ou dois aceita registrar N boletos em uma requisição os demais é um a um então. faça seu código já tratando para um a um o processo de envio afim de não ter que fazer dois códigos para isso. Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Luciano Rodrigues Pereira Postado 6 Agosto Autor Postado 6 Agosto Eu já faço assim, acho que não me expressei bem, vamos lá, independente se é um a um ou vários e independente do banco. 1. Ao enviar o comando tpInclui para registrar o boleto eu recebo o erro "Boleto já registrado", eu vejo esse erro no log do ACBr. O que eu preciso é saber quando o retorno do banco é de "Boleto já registrado", sem ser pelo log, entendeu? Como eu pego essa informação de "Boleto já registrado" quando estou enviando um comando de Registrar Boleto (tpInclui)? Porque na verdade a operação não vai retornar como OK, vai retornar como um erro. Mas qual o código de erro? Eu preciso saber isso para todo e qualquer banco, mas parece que não existe um padrão entre os bancos. Pelo retorno do ACBr ( RetornoDetalhe:= dmBol.Boleto.ListaRetornoWeb[0]; ) eu consigo? existe alguma padronização no código de erro ou outro campo que especifique que o erro foi "Boleto já registrado"? Meu problema todo é a falta de padronização dos bancos. Se cada banco trouxer um código diferente de erro para a tentativa de registrar um boleto já registrado, como vou saber que se trata especificamente deste erro? porque se for esse erro, eu apenas registro no meu BD o boleto, uma vez que já está registrado. 2. Só para exemplificar, quando consulto um boleto e o mesmo não é encontrado no banco, muitos trazem o código de erro 404, mas no BB traz 400. Inferno isso!!!
Moderadores Juliomar Marchetti Postado 6 Agosto Moderadores Postado 6 Agosto bom no exemplo está ali se retorno Ok ele vai passar e tem lista de retornos e se houve algo volta rejeições e se ok retorna os boletos Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Luciano Rodrigues Pereira Postado 6 Agosto Autor Postado 6 Agosto OK, se "houver algo" volta rejeições. Essa é a questão, tem erro que impedem o boleto de ser registrado (falta de cpf, etc.) e o erro do "Boleto já registrado". É esse erro que quero identificar, para poder salvar a informação que o boleto já está registrado no meu BD. Pensei que seria pelo código de erro HTTP, mas acredito que não será padrão esse código de erro em todos os bancos, entendeu?
Moderadores Juliomar Marchetti Postado 6 Agosto Moderadores Postado 6 Agosto exatamente. falei acima não será ele vai voltar 200 ou demais se Ok e dai tu tem que pegar os retornos onde pra cada banco poderá variar abstrai isso com padrões de projeto e interface dentro de seu código Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Luciano Rodrigues Pereira Postado 6 Agosto Autor Postado 6 Agosto Ou seja, verificar o código de erro de acordo com cada banco. Pior que os bancos muitas vezes dão o mesmo erro 400, para várias situações diferentes. aff... horrível essa falta de padronização Vou tentar de outra forma, usando o tpConsultaDetalhe. Desta forma o retorno pode trazer a situação do boleto como BAIXADO, LIQUIDADO, PROTESTADO ou ainda apenas registrado. Tem como via ACBr identificar essas situações independente do banco, para eu não ter de ficar à toda operação ficar testando um código de retorno para cada banco? Eu atualmente faço assim. Existe uma forma melhor usando o ACBr, que já identifique a situação do boleto independente do banco? stCobranca:= UpperCase(TituloRet.EstadoTituloCobranca); if Pos('LIQUIDADO', stCobranca) > 0 then LiquidaBoletoWS(TituloRet, seuNumero) else if Pos('BAIXADO', stCobranca) > 0 then BaixaBoletoWS(SeuNumero); Mas e para os boletos que constam apenas ainda como registrados? Já vi banco que retorna "EM SER", outros "EM CARTEIRA" e se já estiver vencido "VENCIDO", etc. não dá para eu fazer um teste como esse acima.
Moderadores Juliomar Marchetti Postado 6 Agosto Moderadores Postado 6 Agosto Nem todos tem consulta detalhada Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora