Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 573 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. 

 

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

 

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