Ir para conteúdo
  • Cadastre-se

dev botao

Boleto hibrido Sicoob por API sem retorno


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

Recommended Posts

  • Membros Pro
Postado

Boa tarde.

Estou implementando o a inclusão de boletos através da api v3 do Sicoob e está ocorrendo alguns problemas relacionado ao retorno dos dados após a inclusão. Todos os dados fornecidos são fornecidos corretamente e não houve erro em geral referente as informações passadas, porem ao enviar a requisição, o retorno estava vindo vazio, foi quando ao verificar e analisar o log, foi identificado que o retorno estava realmente vazio e com o status 0. Após ir debugando e analisando as classes do ACBRBoleto, reparei que no local onde acontecia o erro por conta do retorno estar vazio não ocorreu e o retorno estava correto, porem sempre que executo sem parar, ele da novamente a mesma falha, e mesmo com erro, com o retorno vindo vazio e o TACBRBoleto.enviar retornando como FALSE, o boleto está sendo registrado no banco.

Obs. Ocorre em todas as requisições para incluir quando em produção, em homologação ele funciona normalmente.

Log:

01/07/24 13:31:52:033 - Autenticando Token... 
01/07/24 13:31:52:034 - Comando Enviar: TOAuth
01/07/24 13:31:52:043 - Header Envio:Authorization: Basic {TOKEN}

01/07/24 13:31:52:052 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token
01/07/24 13:31:52:061 - Body Envio (Payload):client_id={CLIENT_ID}&scope=boletos_inclusao boletos_consulta boletos_alteracao&grant_type=client_credentials
01/07/24 13:31:52:433 - Validade: 01/07/2024 13:36:52
01/07/24 13:31:52:433 - Header Resposta:HTTP/1.1 200 OK
Cache-Control: no-store
Set-Cookie: KC_RESTART=; Version=1; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Max-Age=0; Path=/auth/realms/cooperado/; HttpOnly
X-XSS-Protection: 1; mode=block
Pragma: no-cache
X-Frame-Options: SAMEORIGIN
Referrer-Policy: no-referrer
Date: Mon, 01 Jul 2024 16:28:42 GMT
Strict-Transport-Security: max-age=16070400; includeSubDomains
X-Content-Type-Options: nosniff
Content-Type: application/json
Content-Length: 3836
Set-Cookie: {C}; path=/; HttpOnly; Secure
Set-Cookie: TS012629b2={C}; Path=/; Domain=.auth.sicoob.com.br; Secure; HTTPOnly
Set-Cookie: TS01dfa94a={C}; path=/auth/realms/cooperado/; HTTPonly; Secure
01/07/24 13:31:52:456 - Body Resposta (payload): {RETORNO DO TOKEN}
01/07/24 13:31:52:471 - Comando Enviar: TBoletoW_Bancoob_APIV3
01/07/24 13:31:52:483 - Comando Enviar: {JSON}
01/07/24 13:31:52:496 - URL: [POST] https://api.sicoob.com.br/cobranca-bancaria/v3/boletos
01/07/24 13:31:52:509 - Header:
01/07/24 13:31:52:523 - Accept: application/json
Authorization: Bearer {TOKEN}
client_id: {CLIENT_ID}

01/07/24 13:32:05:779 - Retorno Envio: TBoletoW_Bancoob_APIV3
01/07/24 13:32:05:780 - Código do Envio: 0 1.1 
01/07/24 13:32:05:790 - Retorno Envio: 
ErrorCode=10060
Result=

01/07/24 13:32:05:803 - Cookies:
01/07/24 13:32:05:821 - {C}
TS012629b2={C}
TS01dfa94a={C}

01/07/24 13:32:05:832 - E:\Certificados\19\Certificado.pem
01/07/24 13:32:05:841 - E:\Certificados\19\Certificado.key
01/07/24 13:32:05:850 - Header:
01/07/24 13:32:05:859 - 

Valores retornados: image.png.f507f8bb2ac5718c41eeff734aed743f.png

 

Log simples:

Log debugando:

01/07/24 10:39:33:422 - Autenticando Token... 
01/07/24 10:39:33:423 - Comando Enviar: TOAuth
01/07/24 10:39:33:431 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token
01/07/24 10:45:28:197 - Validade: 01/07/2024 10:50:28
01/07/24 10:45:28:197 - Comando Enviar: TBoletoW_Bancoob_APIV3
01/07/24 10:45:28:207 - Comando Enviar: {JSON}
01/07/24 10:45:28:215 - URL: [POST] https://api.sicoob.com.br/cobranca-bancaria/v3/boletos
01/07/24 10:50:51:217 - Retorno Envio: TBoletoW_Bancoob_APIV3
01/07/24 10:50:51:687 - Código do Envio: 200 1.1 OK

Log normal:

01/07/24 11:03:21:515 - Autenticando Token... 
01/07/24 11:03:21:516 - Comando Enviar: TOAuth
01/07/24 11:03:21:532 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token
01/07/24 11:03:28:567 - Validade: 01/07/2024 11:08:28
01/07/24 11:03:28:567 - Comando Enviar: TBoletoW_Bancoob_APIV3
01/07/24 11:03:28:580 - Comando Enviar: {JSON}
01/07/24 11:03:28:588 - URL: [POST] https://api.sicoob.com.br/cobranca-bancaria/v3/boletos
01/07/24 11:03:57:203 - Retorno Envio: TBoletoW_Bancoob_APIV3
01/07/24 11:03:57:203 - Código do Envio: 0 1.1 

 

  • Foi atualizado e recompilado o SVN do ACBR para teste e continuou com o mesmo comportamento;
  • Todos os testes foram realizados utilizando certificado;
  • Todas as requisições, mesmo com erro e sem retorno, estava sendo registrado o titulo no banco;
  • Foi testado com o mesmo JSON gerado a requisição no postman e o retorno foi correto;
  • Utilizado: Windows 10, Delphi 10.3;
  • Administradores
Postado

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

  • Consultores
Postado

Boa tarde!

Por favor, configure as propriedades de Log para que possamos conferir se chega a registrar retorno no mesmo.

ACBrBoleto.Configuracoes.Arquivos.LogNivel           := logParanoico;
ACBrBoleto.Configuracoes.Arquivos.PathGravarRegistro := 'Caminho onde será gravado o arquivo';
ACBrBoleto.Configuracoes.Arquivos.NomeArquivoLog     := 'Nome do Arquivo de Log';

Outro teste que pode ser feito.

Pegue as dlls deste LINK escolhendo de acordo com a versão que compila a sua aplicação e não a versão do SO e coloque elas na mesma pasta do seu .EXE

Consultor SAC ACBr

Diego Folieni
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 !!

  • Consultores
Postado

Se esta recebendo 200 deveria sim receber True.

Porém uma coisa chama atenção o httpresult esta 0 na classe do send.

Isso começou agora?

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 (editado)

Boa tarde

Notamos inicialmente quando foi alterado de homologação para produção. O primeiro teste foi realizado dia 28/06/2024 e foi realizado um hoje(log abaixo) e foi conferida as informações que estão sendo envias e estão corretas, inclusive o titulo foi registrado no banco.

Para este ultimo teste foi substituídas as dlls do OpenSSL por estas https://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/1.1.1.10

Log paranoico:

05/07/24 13:17:10:661 - Autenticando Token... 
05/07/24 13:17:10:661 - Comando Enviar: TOAuth
05/07/24 13:17:10:669 - Header Envio:Authorization: Basic {TOKEN CORRETO}

05/07/24 13:17:10:675 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token
05/07/24 13:17:10:682 - Body Envio (Payload):client_id={CLIENT_ID}&scope=boletos_inclusao boletos_consulta boletos_alteracao&grant_type=client_credentials
05/07/24 13:17:11:142 - Validade: 05/07/2024 13:22:11
05/07/24 13:17:11:142 - Header Resposta:HTTP/1.1 200 OK
Cache-Control: no-store
Set-Cookie: KC_RESTART=; Version=1; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Max-Age=0; Path=/auth/realms/cooperado/; HttpOnly
X-XSS-Protection: 1; mode=block
Pragma: no-cache
X-Frame-Options: SAMEORIGIN
Referrer-Policy: no-referrer
Date: Fri, 05 Jul 2024 16:13:57 GMT
Strict-Transport-Security: max-age=16070400; includeSubDomains
X-Content-Type-Options: nosniff
Content-Type: application/json
Content-Length: 3836
Set-Cookie: {COOKIE CORRETO}; path=/; HttpOnly; Secure
Set-Cookie: TS012629b2={COOKIE CORRETO}; Path=/; Domain=.auth.sicoob.com.br; Secure; HTTPOnly
Set-Cookie: TS01dfa94a={COOKIE CORRETO}; path=/auth/realms/cooperado/; HTTPonly; Secure


05/07/24 13:17:11:154 - Body Resposta (payload):{"access_token":"{TOKEN CORRETO}","expires_in":300,"refresh_expires_in":0,"token_type":"Bearer","not-before-policy":0,"scope":"boletos_inclusao boletos_alteracao boletos_consulta"}
05/07/24 13:17:11:168 - Comando Enviar: TBoletoW_Bancoob_APIV3
05/07/24 13:17:11:182 - Comando Enviar: {JSON CORRETO}
05/07/24 13:17:11:194 - URL: [POST] https://api.sicoob.com.br/cobranca-bancaria/v3/boletos
05/07/24 13:17:11:203 - Header:
05/07/24 13:17:11:211 - Accept: application/json
Authorization: Bearer {TOKEN CORRETO}
client_id: {CLIENT_ID}

05/07/24 13:17:16:417 - Retorno Envio: TBoletoW_Bancoob_APIV3
05/07/24 13:17:16:418 - C?igo do Envio: 0 1.1 
05/07/24 13:17:16:431 - Retorno Envio: 
ErrorCode=10060
Result=

05/07/24 13:17:16:446 - Cookies:
05/07/24 13:17:16:469 - {COOKIE CORRETO}
TS012629b2={COOKIE CORRETO}
TS01dfa94a={COOKIE CORRETO}

05/07/24 13:17:16:482 - E:\Easy\Certificados\19\Certificado.pem
05/07/24 13:17:16:494 - E:\Easy\Certificados\19\Certificado.key
05/07/24 13:17:16:506 - Header:
05/07/24 13:17:16:514 - 

este é o log completo que foi gerado no arquivo .log

Editado por Edilson Pereira Andrade
  • Consultores
Postado

se você olhar o código está vindo como Código do Envio: 0

esses boletos estão sendo registrados?

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"

  • Consultores
Postado

consegue me enviar no email essas credenciais para ambiente de homologação?

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

certo, só para entender, você quer testar em ambiente de homologação?

Mais em ambiente de homologação utilizando o sandbox com as credencias, ele funciona normal e tem retorno. Este cenário esta acontecendo somente em produção.

Porem se realmente for necessário posso consultar o gerente do projeto a respeito de enviar as credenciais.

 

 

  • Curtir 1
  • Moderadores
Postado
23 minutos atrás, Edilson Pereira Andrade disse:

certo, só para entender, você quer testar em ambiente de homologação?

Mais em ambiente de homologação utilizando o sandbox com as credencias, ele funciona normal e tem retorno. Este cenário esta acontecendo somente em produção.

Porem se realmente for necessário posso consultar o gerente do projeto a respeito de enviar as credenciais.

 

 

tu tem o cadastro no site do sicoob de desenvolvedor?

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 (editado)

Bom dia.

Após varias análises e ir verificando e debugando diretamente no componente httpsend utilizado para realizar a requisição, identifiquei o problema como sendo de timeout.

Ao ir a fundo verifiquei que na requisição do token, onde o timeout não é definido ele pega o valor padrão do componente que é 90000, porem na requisição para registrar o boleto ele está vindo o valor de 5000 no componente BoletoWS e fora dos componentes do ACBR o valor de timeout está sendo passado como 60000.

Valores que está sendo atribuído na procedure TBoletoWSREST.DefinirProxy(o timeout padrão será substituído):

image.png.d5322983a1711fc90ce250f4ef0bb736.png

Valor do timeout sendo definido:

image.png.88c8f8db14ea7747605e79a5920526eb.png

Ao que parece ele não está pegando deste valor, ele é passado em outro lugar ou tem algum outro parâmetro para definir o timeout?

E em alguns casos o timeout que está vindo de 5000 não está sendo o suficiente, causando o problema.

Editado por Edilson Pereira Andrade
  • Curtir 1
  • Consultores
Postado
4 hours ago, Edilson Pereira Andrade said:

Bom dia.

Após varias análises e ir verificando e debugando diretamente no componente httpsend utilizado para realizar a requisição, identifiquei o problema como sendo de timeout.

Ao ir a fundo verifiquei que na requisição do token, onde o timeout não é definido ele pega o valor padrão do componente que é 90000, porem na requisição para registrar o boleto ele está vindo o valor de 5000 no componente BoletoWS e fora dos componentes do ACBR o valor de timeout está sendo passado como 60000.

Valores que está sendo atribuído na procedure TBoletoWSREST.DefinirProxy(o timeout padrão será substituído):

image.png.d5322983a1711fc90ce250f4ef0bb736.png

Valor do timeout sendo definido:

image.png.88c8f8db14ea7747605e79a5920526eb.png

Ao que parece ele não está pegando deste valor, ele é passado em outro lugar ou tem algum outro parâmetro para definir o timeout?

E em alguns casos o timeout que está vindo de 5000 não está sendo o suficiente, causando o problema.

Boa tarde!

Pelo que pude apurar, realmente a propriedade de BoletoWS não é alterada seguindo configuração.

Criada a #TK-5718 para análise do caso e parecer por parte da equipe de consultores.

Consultor SAC ACBr

Diego Folieni
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 !!

  • Consultores
  • Solution
Postado
Em 10/07/2024 at 11:53, Edilson Pereira Andrade disse:

Bom dia.

Após varias análises e ir verificando e debugando diretamente no componente httpsend utilizado para realizar a requisição, identifiquei o problema como sendo de timeout.

Ao ir a fundo verifiquei que na requisição do token, onde o timeout não é definido ele pega o valor padrão do componente que é 90000, porem na requisição para registrar o boleto ele está vindo o valor de 5000 no componente BoletoWS e fora dos componentes do ACBR o valor de timeout está sendo passado como 60000.

Valores que está sendo atribuído na procedure TBoletoWSREST.DefinirProxy(o timeout padrão será substituído):

image.png.d5322983a1711fc90ce250f4ef0bb736.png

Valor do timeout sendo definido:

image.png.88c8f8db14ea7747605e79a5920526eb.png

Ao que parece ele não está pegando deste valor, ele é passado em outro lugar ou tem algum outro parâmetro para definir o timeout?

E em alguns casos o timeout que está vindo de 5000 não está sendo o suficiente, causando o problema.

ACBrBoletoWS.Rest.pasACBrBoletoWS.Rest.OAuth.pas

 

Bom dia,

verifique se esses ajustes adequam a sua necessidade

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

pessoal para nao abrir outro topico, tambem estou com problema no banco inter , estava normal enviando , mas agora o boleto com pix e registrado no banco , mas o retorno vem vazio de codigo barra.

Emite normalmente as cobrancas do dia 12/07 , mas fui enviar hj 17/07 e esta em retorno do banco as informacoes , mesmo sendo registrado no banco.

Segue log.

 

ArqBoletoWS.log

  • Consultores
Postado
21 horas atrás, jmc disse:

pessoal para nao abrir outro topico, tambem estou com problema no banco inter , estava normal enviando , mas agora o boleto com pix e registrado no banco , mas o retorno vem vazio de codigo barra.

Emite normalmente as cobrancas do dia 12/07 , mas fui enviar hj 17/07 e esta em retorno do banco as informacoes , mesmo sendo registrado no banco.

Segue log.

 

ArqBoletoWS.log 8.13 kB · 0 downloads

caso for a situação do timeout igual do outro amigo, testa com as units conforme no topico

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

 

Em 17/07/2024 at 17:01, Victor H. Gonzales - Panda disse:

Bom dia.

Após alguns testes os boletos foram gerados corretamente e o retorno também veio correto.

Verifiquei também onde o timeout não estava sendo passado corretamente e está correto.

Obrigado

  • Consultores
Postado

Por favor atualize seus fontes, pelo SVN do ACBr... 

Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico...

Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido...

Dúvidas, sobre o uso do SVN ?  Clique aqui e veja um vídeo

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"

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