Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Moderadores
Postado
39 minutos atrás, Junior.Jaru disse:

Alguém pode me enviar enviar os arquivos e o demo ? preciso implementar no meu sistema e o SNV nao tem essa versão.

Aguarde que vai ser disponibilizado no svn. está sendo feito validação dos códigos e refatorando o que é necessário.

o demo e fontes estão em anexo nos posts acima. lembrando que deposi tu vai ter que fazer revert senão vai perder correções e novas implementações

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
 

 

Postado
45 minutos atrás, Juliomar Marchetti disse:

Aguarde que vai ser disponibilizado no svn. está sendo feito validação dos códigos e refatorando o que é necessário.

o demo e fontes estão em anexo nos posts acima. lembrando que deposi tu vai ter que fazer revert senão vai perder correções e novas implementações

Ok.. Obrigado! Fico no aguardo!

  • 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

Bom dia,

@marcelosantos e @Delcio e demais presentes, conseguem testar o commit 29122?

  • Obrigado 2
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
13 minutos atrás, Junior.Jaru disse:

O Erro parece estar aqui.. 

image.thumb.png.148e8e9b70472045c177b035aabf0123.png

Bom dia,

verifica novamente Completed: At revision: 29167  por favor

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
18 minutos atrás, Junior.Jaru disse:

Erro

 

image.thumb.png.9c95e1c74a4fb34ddbcd4a183d8876d3.png

image.thumb.png.18918116e88953a06b907d9af0ae0009.png

 

image.png

ele não está passando no setbanco e no create?

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
1 minuto atrás, Junior.Jaru disse:

@Victor H. Gonzales - Panda

 

Olá Victor, obrigado pela atenção.. o erro agora mudou.. é esse:

 

tem idéia do que pode ser?

image.thumb.png.abba639b144d41c458f6174996da71e5.png

401 é falta de permissão... tudo indica que está faltando credencial informada, como os certificados

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"

Postado
1 minuto atrás, Victor H. Gonzales - Panda disse:

401 é falta de permissão... tudo indica que está faltando credencial informada, como os certificados

Tudo criado certinho no portal do sicoob.

não sei o que pode ser.

image.thumb.png.7311e29446e9fdf5447627f31be0b639.png

1 minuto atrás, Junior.Jaru disse:

Tudo criado certinho no portal do sicoob.

não sei o que pode ser.

image.thumb.png.7311e29446e9fdf5447627f31be0b639.png

Aparentemente tudo certo?

image.thumb.png.81eacf2be801cbb4ff481dba5c93eec9.png

5 minutos atrás, Victor H. Gonzales - Panda disse:

401 é falta de permissão... tudo indica que está faltando credencial informada, como os certificados

Configurei o certificado assim. Certo?

image.thumb.png.27f314613635cbe02908587da3cb409d.png

Postado
9 minutos atrás, Junior.Jaru disse:

Tudo criado certinho no portal do sicoob.

não sei o que pode ser.

image.thumb.png.7311e29446e9fdf5447627f31be0b639.png

Aparentemente tudo certo?

image.thumb.png.81eacf2be801cbb4ff481dba5c93eec9.png

Configurei o certificado assim. Certo?

image.thumb.png.27f314613635cbe02908587da3cb409d.png

Removi a o ClientSecret mas da erro... mesmo o sicoob nao exigindo clientSecret

image.thumb.png.c66bf38da974f7f25b0a31aa6b5e6a7f.png

Postado (editado)

Bom dia @Junior.Jaru, tenta fazer o seguinte

•Ao inves de informar o pfx, informar o .pem e o .key separados.

exemplo

FACBr.Configuracoes.WebService.ArquivoCRT :=  '{seu_path}\SicoobCertificado.pem';
FACBr.Configuracoes.WebService.ArquivoKEY :=  '{seu_path}\SicoobChavePrivada.key';

•Informar client_secret igual o client_id.

•Setar o scope.

exemplo

FACBr.Cedente.CedenteWS.Scope             :=  'cobranca_boletos_consultar cobranca_boletos_incluir cobranca_boletos_baixa';

 

Editado por William Mattos
Postado
6 minutos atrás, William Mattos disse:

Bom dia @Junior.Jaru, tenta fazer o seguinte

•Ao inves de informar o pfx, informar o .pem e o .key separados.

exemplo

FACBr.Configuracoes.WebService.ArquivoCRT :=  '{seu_path}\SicoobCertificado.pem';
FACBr.Configuracoes.WebService.ArquivoKEY :=  '{seu_path}\SicoobChavePrivada.key';

•Informar client_secret igual o client_id.

•Setar o scope.

exemplo

FACBr.Cedente.CedenteWS.Scope             :=  'cobranca_boletos_consultar cobranca_boletos_incluir cobranca_boletos_baixa';

 

Olá @William Mattos Obrigado pela atenção.. fiz conforme indicado.. o erro agora é

 

Você gostaria de contactar na minha máquina para dar uma olhadinha? rsrs Zap (69) 9 9250-3445

 image.thumb.png.513d579c41d5847ca936fb9d5d867653.png

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.

@Junior.Jaru siga as instruções acima.
Já estamos operando em produção. Centenas de boletos já registrados via API.

Postado (editado)
40 minutos atrás, Pedro A. Araújo disse:

@Junior.Jaru siga as instruções acima.
Já estamos operando em produção. Centenas de boletos já registrados via API.

Segui os passos indicado.. ainda recebo erro

image.thumb.png.6400d9226cc5a5649d837d81e09b9eb3.png

image.thumb.png.020f2fd1d2116d987f9fc0802da9d0eb.png

Editado por Junior.Jaru
Postado
32 minutos atrás, Junior.Jaru disse:

Segui os passos indicado.. ainda recebo erro

image.thumb.png.6400d9226cc5a5649d837d81e09b9eb3.png

image.thumb.png.020f2fd1d2116d987f9fc0802da9d0eb.png

Fui no portal do sicoob exclui todos os aplicativos e criei um novo só para boleto. agora o erro é esse

 

image.thumb.png.f12354e4ce5a816db255088b4f226abf.png

 

mesmo setando indicadorpix para false

image.thumb.png.f5617ecd78f30944537881b9671e0712.png

Postado

Olá avancei mais um pouco.

 

estou recebendo o seguinte erro:

Nosso Número é inválido

tentei enviar sem informar o campo mas msm assim da erro, embora o campo seja opcional na documentação da api.

Help.. Help... rsrs

image.thumb.png.d358e89df3cd63e12a19fa64b4a0afb1.png

Postado
5 minutos atrás, Junior.Jaru disse:

Olá avancei mais um pouco.

 

estou recebendo o seguinte erro:

Nosso Número é inválido

tentei enviar sem informar o campo mas msm assim da erro, embora o campo seja opcional na documentação da api.

Help.. Help... rsrs

image.thumb.png.d358e89df3cd63e12a19fa64b4a0afb1.png

Aqui eu continuo mandando o nosso número. A rotina responsável por alimentar o componente ACBrBoleto com os títulos continua a mesma, seja para gerar remessa ou enviar via API.

Postado (editado)

Encontrei alguns problemas ao passar a utilizar a versão do SVN.

Segue algumas alterações anexadas.

Alterações em ACBrBoletoW_Bancoob.pas:    

  •     TBoletoW_Bancoob.GeraJuros()
    • Ao enviar um novo boleto, e o CodigoMoraJuros = cjIsento, retornava erro acusando que o campo "tipoJurosMora" é obrigatório (pois a procedure só incluía o campo se o valor dos juros > 0).
  •     TBoletoW_Bancoob.RequisicaoJson()      
    • Alterei para gerar o pix respeitando a configuração em ATitulo.ACBrBoleto.Cedente.CedenteWS.IndicadorPix, antes estava hard-coded.        

Alterações em ACBrBoletoRet_Bancoob.pas:

    TRetornoEnvio_Bancoob.LerRetorno()
        O retorno 'qrcode' do JSON estava preenchendo a propriedade txId incorretamente, pois o conteúdo de 'qrcode' se trata do EMV, sem essa mudança, o qrcode não aparece no boleto.       
   

Ficaria grato se puderem avaliar as alterações, obrigado.

 

ACBrBoletoRet_Bancoob.pas ACBrBoletoW_Bancoob.pas

Editado por William Mattos
  • Curtir 1
  • Consultores
Postado

@Pedro A. Araújo, @William Mattos, @Junior.Jaru e @carlitomorais
Sobre o tópico:  "Problemas com boleto hibrido (boleto com Pix) Sicoob", o mesmo foi fechado para continuarmos aqui, para que possamos concentrar as contribuições em um único lugar apenas.
Criado a tarefa K-3540-1 para que seja analisada as contribuições pela equipe de boleto.

 

  • Curtir 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

  • Membros Pro
Postado

Olá pessoal!

Estou dedicado em tentar finalizar a cobrança Sicoob através de API e me deparei com as seguintes situações que entendo devam ser atualizadas no repositório (segue em anexo unit devidamente modificada):

Arquivo: ACBrBoletoW_Bancoob.pas

1) Formato da data, linhas 269/270

SVN:   result := FormatDateBr( aValue, 'YYYY-MM-DD') + 'T' + FormatDateTime('hh:nn:ss', AValue) + PegaTimeZone; 
       //'2023-05-26T03:00:00.000Z' - versão acbr - fora do formato esperado

SOLUÇÃO PROPOSTA (não é desenvolvimento meu, mas de versões anteriores que está funcionando corretamente):
       result := FormatDateBr( aValue, 'YYYY-MM-DD') + 'T' + FormatDateTime('hh:nn:ss', AValue) + PegaTimeZone;       
       //'2023-05-26T00:00:00-03:00' - correto, dentro do padrão definido pelo SICOOB
       
       function TBoletoW_Bancoob.PegaTimeZone: string;
       var TimeZone: TTimeZoneInformation;
       begin
         GetTimeZoneInformation(TimeZone);
         Result := FormatFloat('00', TimeZone.Bias div -60) + ':00';
       end;

2) Rotina de geração do juros de mora
    procedure TBoletoW_Bancoob.GerarJuros(AJson: TJsonObject);
    begin
     if Assigned(aTitulo) then
      begin
        if Assigned(AJson) then
        begin
          if (aTitulo.ValorMoraJuros > 0) then
          begin

            if ATitulo.CodigoMora = '' then
            begin
              case aTitulo.CodigoMoraJuros of
                cjValorDia   : aTitulo.CodigoMora := '1';
                cjTaxaMensal : aTitulo.CodigoMora := '2';
                cjIsento     : aTitulo.CodigoMora := '0';
              end;
            end;

            case (StrToIntDef(aTitulo.CodigoMora, 0)) of
              0:    // Isento
                begin
                  AJson.Add('tipoJurosMora').Value.AsInteger :=  0;
                  AJson.Add('valorJurosMora').Value.asNumber := 0;
                end;
              1:     // Dia
                begin
                 // AJson.Add('taxa').Value.asNumber := aTitulo.ValorMoraJuros;
                  AJson.Add('tipoJurosMora').Value.AsInteger :=  1; <<<<<<------ Isso está correto. A função do repositório Integer(aTitulo.CodigoMoraJuros) retorna o valor 0 (zero)
                  AJson.Add('dataJurosMora').Value.asString := DateTimeToDateBancoob(aTitulo.DataMulta);
                  AJson.Add('valorJurosMora').Value.asNumber := aTitulo.ValorMoraJuros;
                end;
              2: // Mês
                begin
                  AJson.Add('tipoJurosMora').Value.AsInteger :=  2; <<<<<<------ Isso está correto. A função do repositório Integer(aTitulo.CodigoMoraJuros) retorna o valor 1 (um)
                  AJson.Add('dataJurosMora').Value.asString := DateTimeToDateBancoob(aTitulo.DataMulta);
                  AJson.Add('valorJurosMora').Value.asNumber := aTitulo.ValorMoraJuros;
                end;
             end;
          end;
        end;
      end;
    end;

Atenciosamente,


        

ACBrBoletoW_Bancoob.pas

  • Membros Pro
Postado
Em 19/04/2023 at 11:46, Junior.Jaru disse:

Fui no portal do sicoob exclui todos os aplicativos e criei um novo só para boleto. agora o erro é esse

 

image.thumb.png.f12354e4ce5a816db255088b4f226abf.png

 

mesmo setando indicadorpix para false

image.thumb.png.f5617ecd78f30944537881b9671e0712.png

Opa, beleza junior ?

Estou tendo o mesmo problema em relação ao PIX. Alterei no ACBrBoletoW_Bancoob.pas e coloquei na linha 399

de

Json.Add('codigoCadastrarPIX').Value.AsInteger    := 1;

para

Json.Add('codigoCadastrarPIX').Value.AsInteger    := 0;

e mesmo assim o JSON vem com 1.

Conseguiu resolver isso ?

Atualizei os fontes hoje pelo SVN.

Obrigado.

 

www.apisystems.com.br

  • Membros Pro
Postado
1 hora atrás, sergio_api disse:

Opa, beleza junior ?

Estou tendo o mesmo problema em relação ao PIX. Alterei no ACBrBoletoW_Bancoob.pas e coloquei na linha 399

de

Json.Add('codigoCadastrarPIX').Value.AsInteger    := 1;

para

Json.Add('codigoCadastrarPIX').Value.AsInteger    := 0;

e mesmo assim o JSON vem com 1.

Conseguiu resolver isso ?

Atualizei os fontes hoje pelo SVN.

Obrigado.

 

Sergio_api, a unit que postei acima está redondinha. É pegar e usar. Vamos aguardar a revisão para disponibilizarem no repositório.

Marcelo.

  • Curtir 1
Postado
19 horas atrás, mlgoncalves disse:

Sergio_api, a unit que postei acima está redondinha. É pegar e usar. Vamos aguardar a revisão para disponibilizarem no repositório.

Marcelo.

Boa tarde.

Na linha 329

Json.Add('seuNumero').Value.asString                        := OnlyNumber(aTitulo.ACBrBoleto.Banco.MontarCampoNossoNumero(aTitulo));

Não poderia ser o seuNumero mesmo ao invés do nossoNumero?

No seuNumero eu normalmente informo o meu id do titulo interno(chave primaria),

para ficar mais fácil de localizar o titulo no banco de dados no retorno das consultas por exemplo.

E o identificacaoBoletoEmpresa não poderia ser o numero do documento?

 

image.thumb.png.5976d0153434ec8709b2256515563857.png

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