Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Prezados.

Estou iniciando a implementação do boleto via WS, mais precisamente Sicoob/Bancoob.
Analisando os fontes, identifiquei que a unit ACBrBoletoWS faz referências aos arquivos do Bancoob, porém o referido código está comentado e os arquivos não foram disponibilizados no SVN.

Gostaria de dar seguimento ao desenvolvimento e homologação.

  • Consultores
Postado
5 minutos atrás, Pedro A. Araújo disse:

Prezados.

Estou iniciando a implementação do boleto via WS, mais precisamente Sicoob/Bancoob.
Analisando os fontes, identifiquei que a unit ACBrBoletoWS faz referências aos arquivos do Bancoob, porém o referido código está comentado e os arquivos não foram disponibilizados no SVN.

Gostaria de dar seguimento ao desenvolvimento e homologação.

Boa tarde Pedro
Aqui vai encontrar arquivos que alguns usuários estão trabalhando com este banco que vc, acredito que possam trabalham em conjunto

 

  • Obrigado 1
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Postado

Estou com essa implementação em andamento, tenho os endpoints de Registro, Consulta Detalhada e Baixa funcionando, só preciso dar uma revisada e consigo postar aqui, vi que o @marcelosantos estava implementado esse banco também, mas não consegui contato com ele por mensagem aqui no fórum, e como tinha certa urgência resolvi  implementar.

  • Obrigado 1
  • Solution
Postado

Seguem as units e o patch do svn, caso alguém queira analisar,  devido a falta de tempo, implementei somente os endpoints para atender a minha necessidade, as funcionalidade básicas estão implementadas, caso alguém queira incluir os outros endpoints, como alterar vencimento, desconto, etc, fique a vontade, caso contrario implementarei conforme sobrar um tempo aqui.

Está funcionando o boleto híbrido inclusive, com o retorno do EMV.

Tive que alterar a ACBrBoletoWS.Rest.pas para incluir o HttpResultCode 207 como Result válido, por que o Sicoob retorna ele, na inclusão de boletos. 

Alterei também a ACBrBoletoWS.pas, pois ao chamar TBoletoWS.Clear,  o field FBoleto não era setado, passando a ser Nil;

 

ACBrBoletoW_Bancoob.pas ACBrBoletoWS.Rest.pas ACBrBoletoWS.pas ACBrBoletoRet_Bancoob.pas Sicoob Api.patch

  • Obrigado 5
Postado

@Pedro A. Araújo Pra facilitar aí:

1 - Extrair a Chave pública e privada do certificado da empresa, detalhe: Tem que ser um certificado A1 ICP-BRASIL, não serve gerar um certificado auto assinado. Para facilitar a extração, usar o Demo do ACBRPixCD.

2 - Cadastrar o aplicativo no https://developers.sicoob.com.br/portal/, conforme o vídeo abaixo, mudar somente na parte da seleção da API, deve selecionar a API "Cobrança Bancária", no vídeo está a selecionando a do PIX. Na parte que pede o certificado, inserir o arquivo da chave pública do certificado extraído anteriormente. Copiar o Client ID do aplicativo cadastrado.

Vídeo Cadastro Aplicativo Sicoob.

3 - Configurar o ACBRBoleto da mesma forma que configura para emitir por arquivo de remessa e incluir:

          AcBrBoleto.Cedente.CedenteWS.ClientID     := Client_Id gerado no portal developpers sicoob;
          AcBrBoleto.Cedente.CedenteWS.ClientSecret := Client_Id gerado no portal developpers sicoob;
          AcBrBoleto.Cedente.CedenteWS.Scope        := 'cobranca_boletos_consultar cobranca_boletos_incluir cobranca_boletos_baixa';
          AcBrBoleto.Cedente.CedenteWS.IndicadorPix    := True; //para boleto híbrido
          
          AcBrBoleto.Configuracoes.WebService.Ambiente           := taProducao; //Só tem produção
          AcBrBoleto.Configuracoes.WebService.SSLCryptLib        := cryOpenSSL;
          AcBrBoleto.Configuracoes.WebService.SSLHTTPLib         := httpOpenSSL;
          AcBrBoleto.Configuracoes.WebService.SSLType            := LT_TLSv1_2;
          AcBrBoleto.Configuracoes.WebService.TimeOut            := 30000;
          AcBrBoleto.Configuracoes.WebService.UseCertificateHTTP := True;
          AcBrBoleto.Configuracoes.WebService.ArquivoCRT         := 'c:\ChavePublica.pem'; \\Chave pública extraída no passo 1
          AcBrBoleto.Configuracoes.WebService.ArquivoKEY         := 'c:\ChavePrivada.key'; \\Chave privada extraída no passo 1

Demais scopes se for usar algum outro endpoint:

{ cobranca_boletos_consultar cobranca_boletos_incluir- cobranca_boletos_pagador cobranca_boletos_segunda_via
            cobranca_boletos_descontos cobranca_boletos_abatimentos cobranca_boletos_valor_nominal cobranca_boletos_seu_numero cobranca_boletos_especie_documento
            cobranca_boletos_baixa cobranca_boletos_rateio_credito cobranca_pagadores cobranca_boletos_negativacoes_incluir cobranca_boletos_negativacoes_alterar
            cobranca_boletos_negativacoes_baixar cobranca_boletos_protestos_incluir cobranca_boletos_protestos_alterar cobranca_boletos_protestos_desistir cobranca_boletos_solicitacao_movimentacao_incluir
            cobranca_boletos_solicitacao_movimentacao_consultar cobranca_boletos_solicitacao_movimentacao_download cobranca_boletos_prorrogacoes_data_vencimento
            cobranca_boletos_prorrogacoes_data_limite_pagamento cobranca_boletos_encargos_multas cobranca_boletos_encargos_juros_mora cobranca_boletos_pix cobranca_boletos_faixa_nn_disponiveis }

Qualquer dúvida estou a disposição.

  • Obrigado 1
  • Consultores
Postado
Em 24/03/2023 at 07:57, Pedro A. Araújo disse:

Prezados
O registro e a consulta de boleto está funcionando.

Gentileza adicionar os arquivos disponibilizados pelo @Delcio ao SVN.

Bom dia @Pedro A. Araújo
Chegou a testar a Baixa de títulos ?
Os arquivos que @Decio te enviou no tópico acima vc fez modificações  ou os dele permanecem para análise?
 

 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

  • Membros Pro
Postado

Pessoal vou deixar aqui o que eu tinha feito

Alterados neste o Retono da Inclusão e da Consulta (com algumas melhorais/mapeamentos)

Escritos neste os metodos para Alterar Vencimento,  Protestar,  Baixar,  Alterar Descontos , Atribuir Descontos, Alterar Valor da Multa,  Alterar Valor de Juros,  Alterar Abatimento,  Alterar Especie e  Sustar Protesto* (precisou da inclusão do Metodo HTTP  DELETE em ACBrBoletoConversao), detalhe para todos estes inscritos é, a conta da empresa aqui não tem estes serviços liberados pelo banco e todos eles estão retornando: (tenho a mesma resposta utilizando o POSTMAN)

{
    "httpCode": "401",
    "httpMessage": "Unauthorized",
    "moreInformation": "Cannot pass the security checks that are required by the target API or operation, Enable debug headers for more details."
}

Ou seja, ainda é preciso escrever o mapeamento/retorno destes no componente

Obs.: eu não usei a implementação do Pedro, mas acredito que possamos juntar as 2 e ter um ganho no que falta ser feito

ACBrBoleto.rar

Postado

Olá @marcelosantos, havia tentado baixar o teu código mas não tinha permissão para baixar o anexo do teu post, dai por necessidade, tive que implementar. 

Vi que o teu já tem boa parte da implementação dos métodos de alteração e acredito que eu tenha todos esses endpoints liberados aqui pra poder testar.

@marcelosantos, @Daniel InfoCotidiano @Pedro A. AraújoAssim que der um tempo, se me permite, vou ver qual a melhor forma de juntar as duas implementações. 

Seria interessante implementar os métodos de consulta por período também, mas parece que o Sicoob implementou isso de forma assíncrona, são 3 endpoints:

1- Solicitar Movimentação, 2 - Consultar Situação da Solicitação de Movimentação e 3 - Baixar Movimentação, esse último parece que traz as movimentações em um arquivo zipado, então teria que extrair e ver como é o formato desse retorno das movimentações, que  não encontrei na documentação. 

 

  • Membros Pro
Postado
Em 27/03/2023 at 10:13, marcelosantos disse:

Pessoal vou deixar aqui o que eu tinha feito

Alterados neste o Retono da Inclusão e da Consulta (com algumas melhorais/mapeamentos)

Escritos neste os metodos para Alterar Vencimento,  Protestar,  Baixar,  Alterar Descontos , Atribuir Descontos, Alterar Valor da Multa,  Alterar Valor de Juros,  Alterar Abatimento,  Alterar Especie e  Sustar Protesto* (precisou da inclusão do Metodo HTTP  DELETE em ACBrBoletoConversao), detalhe para todos estes inscritos é, a conta da empresa aqui não tem estes serviços liberados pelo banco e todos eles estão retornando: (tenho a mesma resposta utilizando o POSTMAN)

{
    "httpCode": "401",
    "httpMessage": "Unauthorized",
    "moreInformation": "Cannot pass the security checks that are required by the target API or operation, Enable debug headers for more details."
}

Ou seja, ainda é preciso escrever o mapeamento/retorno destes no componente

Obs.: eu não usei a implementação do Pedro, mas acredito que possamos juntar as 2 e ter um ganho no que falta ser feito

ACBrBoleto.rar 55.11 kB · 3 downloads

Olá Marcelo Santos, você está conseguindo fazer o registro on-line através deste código? Estou fazendo testes e não estou tendo sucesso em obter o token de autorização.

Postado
Em 30/03/2023 at 12:41, mlgoncalves disse:

Me ajuda numa coisa: onde informo o HOST 'https://auth.sicoob.com.br'  que é necessário para a obtenção do token?

Os arquivos disponibilizados já realizam a requisição para atualizar o token.

 

Em 17/03/2023 at 17:49, Delcio disse:

Seguem as units e o patch do svn, caso alguém queira analisar,  devido a falta de tempo, implementei somente os endpoints para atender a minha necessidade, as funcionalidade básicas estão implementadas, caso alguém queira incluir os outros endpoints, como alterar vencimento, desconto, etc, fique a vontade, caso contrario implementarei conforme sobrar um tempo aqui.

Está funcionando o boleto híbrido inclusive, com o retorno do EMV.

Tive que alterar a ACBrBoletoWS.Rest.pas para incluir o HttpResultCode 207 como Result válido, por que o Sicoob retorna ele, na inclusão de boletos. 

Alterei também a ACBrBoletoWS.pas, pois ao chamar TBoletoWS.Clear,  o field FBoleto não era setado, passando a ser Nil;

 

ACBrBoletoW_Bancoob.pas 22.21 kB · 7 downloads ACBrBoletoWS.Rest.pas 10.49 kB · 6 downloads ACBrBoletoWS.pas 15.69 kB · 8 downloads ACBrBoletoRet_Bancoob.pas 14.87 kB · 6 downloads Sicoob Api.patch 40.23 kB · 10 downloads

 

  • Membros Pro
Postado
18 horas atrás, Pedro A. Araújo disse:

Os arquivos disponibilizados já realizam a requisição para atualizar o token.

 

 

Olá Pedro,

Utilizei os fontes que você disponibilizou e ainda não consegui gerar o token de autorização, necessário para utilização da API. No Postman eu consigo gerar o token, mas para isso tive de configurar o certificado digital informando os arquivos .CRT e .KEY. Tentei fazer exatamente o mesmo nos exemplos do ACBR, mas parece que está faltando alguma coisa pois não gera o token de jeito nenhum.

Você tem alguma dica pra passar?

Desde já agradeço.

Marcelo Gonçalves

Postado
Em 18/03/2023 at 18:02, Delcio disse:

@Pedro A. Araújo Pra facilitar aí:

1 - Extrair a Chave pública e privada do certificado da empresa, detalhe: Tem que ser um certificado A1 ICP-BRASIL, não serve gerar um certificado auto assinado. Para facilitar a extração, usar o Demo do ACBRPixCD.

2 - Cadastrar o aplicativo no https://developers.sicoob.com.br/portal/, conforme o vídeo abaixo, mudar somente na parte da seleção da API, deve selecionar a API "Cobrança Bancária", no vídeo está a selecionando a do PIX. Na parte que pede o certificado, inserir o arquivo da chave pública do certificado extraído anteriormente. Copiar o Client ID do aplicativo cadastrado.

Vídeo Cadastro Aplicativo Sicoob.

3 - Configurar o ACBRBoleto da mesma forma que configura para emitir por arquivo de remessa e incluir:

          AcBrBoleto.Cedente.CedenteWS.ClientID     := Client_Id gerado no portal developpers sicoob;
          AcBrBoleto.Cedente.CedenteWS.ClientSecret := Client_Id gerado no portal developpers sicoob;
          AcBrBoleto.Cedente.CedenteWS.Scope        := 'cobranca_boletos_consultar cobranca_boletos_incluir cobranca_boletos_baixa';
          AcBrBoleto.Cedente.CedenteWS.IndicadorPix    := True; //para boleto híbrido
          
          AcBrBoleto.Configuracoes.WebService.Ambiente           := taProducao; //Só tem produção
          AcBrBoleto.Configuracoes.WebService.SSLCryptLib        := cryOpenSSL;
          AcBrBoleto.Configuracoes.WebService.SSLHTTPLib         := httpOpenSSL;
          AcBrBoleto.Configuracoes.WebService.SSLType            := LT_TLSv1_2;
          AcBrBoleto.Configuracoes.WebService.TimeOut            := 30000;
          AcBrBoleto.Configuracoes.WebService.UseCertificateHTTP := True;
          AcBrBoleto.Configuracoes.WebService.ArquivoCRT         := 'c:\ChavePublica.pem'; \\Chave pública extraída no passo 1
          AcBrBoleto.Configuracoes.WebService.ArquivoKEY         := 'c:\ChavePrivada.key'; \\Chave privada extraída no passo 1

Demais scopes se for usar algum outro endpoint:

{ cobranca_boletos_consultar cobranca_boletos_incluir- cobranca_boletos_pagador cobranca_boletos_segunda_via
            cobranca_boletos_descontos cobranca_boletos_abatimentos cobranca_boletos_valor_nominal cobranca_boletos_seu_numero cobranca_boletos_especie_documento
            cobranca_boletos_baixa cobranca_boletos_rateio_credito cobranca_pagadores cobranca_boletos_negativacoes_incluir cobranca_boletos_negativacoes_alterar
            cobranca_boletos_negativacoes_baixar cobranca_boletos_protestos_incluir cobranca_boletos_protestos_alterar cobranca_boletos_protestos_desistir cobranca_boletos_solicitacao_movimentacao_incluir
            cobranca_boletos_solicitacao_movimentacao_consultar cobranca_boletos_solicitacao_movimentacao_download cobranca_boletos_prorrogacoes_data_vencimento
            cobranca_boletos_prorrogacoes_data_limite_pagamento cobranca_boletos_encargos_multas cobranca_boletos_encargos_juros_mora cobranca_boletos_pix cobranca_boletos_faixa_nn_disponiveis }

Qualquer dúvida estou a disposição.

Boa noite @mlgoncalves
Basta seguir as instruções acima.

  • Este tópico foi criado há 711 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
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...