Ir para conteúdo
  • Cadastre-se

dev botao

Boleto Via Webservice Caixa Federal


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

Recommended Posts

  • Membros Pro

Boa tarde pessoal !

Hoje fiz vários testes no componente do WS para Caixa Federal, me deparei com alguns problemas na unit ACBrBoletoW_Caixa, fiz uma correção e estou anexando a unit, especificando aqui:

O campo NossoNumero é formatado com 17 dígitos, sempre iniciando por '14', para resolver coloquei assim: '14' + ACBrUtil.PadLeft(NossoNumero, 15, '0') em todos os lugares onde aparece io

Na função GerarAutenticacao, não estava gerando o HASH corretamente por 3 motivos:

Nosso número, corrigido com a solução anterior

O valor estava sem formatação, ocasionado divergencia no hash também, exemplo, boleto de R$ 10,00 estava passando para montagem do hash como 10, correto seria 1000, resolvido assim: FormatFloat('#0.00', Valor)

No Result também estava gerando o HASH errado

antes: Result := AsciiToHex(SHA1(sAutenticacao))

Depois: Result := TNetEncoding.Base64.EncodeBytesToString(GetStrHashSHA256(trim(sAutenticacao)));

Adicionando também a função GetStrHashSHA256 para geração do HASH e depois convertendo para BASE64

função a seguir adicionada:

function TBoletoW_Caixa.GetStrHashSHA256(Str: String): TBytes;
  var
    HashSHA: THashSHA2;
  begin
      HashSHA := THashSHA2.Create;
      result := HashSHA.GetHashBytes(Str,SHA256);
  end;

 

Somente após as alterações consegui gerar boleto em produção, fiz vários testes e gerei 20 boletos e todos registrados.

Espero ter colaborado, em aenxo unit para análise.

 

 

ACBrBoletoW_Caixa.pas

Editado por serginhoott
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

No xml de retorno da consulta não vem.

Vem somente a mensagem "(0) OPERACAO EFETUADA - SITUACAO DO TITULO = TITULO JA PAGO NO DIA"

e os dados do Titulo que foi registrado. Mas não vem os dados do pagamento.

Pelo menos neste teste que fiz, foi pago no mesmo dia da emissão.

Mas acredito que se for pago num dia após a emissão irá vir da mesma forma, por que no manual esta assim.

Isso é um problema por que não tem como saber certo que dia foi pago.

 

Em anexo XML da Consulta.

 

165-2-retorno_registro.xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores

A funcionalidade do WebService dos Bancos está sendo mais para registro apenas, creio que outras funcionalidades precisa continuar através de troca de arquivos... Alguns bancos não disponibilizam nenhum tipo de consulta após o registro on-line.

Quanto ao ajuste acima parece ok, mas não mantem compatibilidade com versões antigas do Delphi e também com Lazarus. Então implementei outra solução em breve será disponibilizado com novos recursos do WebService.

  • Curtir 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

Em 18/08/2020 at 15:02, Cleonir disse:

Tive outro problema com o JUROS_MORA.

Se CodigoMoraJuros = cjIsento não deve ser criado a tag DATA. 

Bom dia.

Com a atualização de hoje ficou ok a questão do HASH.

Mas deu problema com o JUROS_MORA CodigoMoraJuros = cjIsento

Foi adicionado dentro do if também o VALOR ou PERCENTUAL, assim da rejeição.

Deve ficar no if (Integer(CodigoMoraJuros) <> 2) then  somente a DATA.

 

Não sei dizer por que da rejeição por que na consulta vem exatamente como esta agora.

Mas se enviar assim da rejeição.

Anotação 2020-08-27 083948.png

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Administradores

Boa tarde.

Alteração já disponível no svn.

Att.

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

Link para o comentário
Compartilhar em outros sites

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