
Metasis Sistemas
Membros-
Total de ítens
41 -
Registro em
-
Última visita
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
Metasis Sistemas's Achievements
-
Identificado o problema: eu não informava a versão da API e por padrão estava vindo preenchido como 1.2, e a configuração "UseCertificateHTTP" usava como false, passei a ativa-la. ficando da seguinte maneira: ACBrBoleto.Configuracoes.WebService.VersaoDF := 'V2'; ACBrBoleto.Configuracoes.WebService.UseCertificateHTTP := True; Antes da ultima atualização dos fontes funcionava sem informar a versão se setando "UseCertificateHTTP" como false, porem fazendo os ajustes resolveu o problema.
-
Metasis Sistemas started following Ajuste retorno API Sicoob , Falha na Autenticação: HTTP_Code=400 Erro=Invalid client credentials SICOOB , IPM Versão 100 Garuva-SC e 3 outros
-
Falha na Autenticação: HTTP_Code=400 Erro=Invalid client credentials SICOOB
um tópico no fórum postou Metasis Sistemas ACBrBoleto
Bom dia, Após atualizar os fontes estou com o seguinte problema com o banco SICOOB (o cliente não usa a versão 3) ao tentar enviar ou consultar boleto esta retornando o erro "Falha na Autenticação: HTTP_Code=400 Erro=Invalid client credentials" *** Com meu executável compilado na versão anterior esta funcionando *** ao comparar os logs gerando pelas duas versões verifiquei que o Header estava gerando diferente. (Comentei os client Id para não expor os dados) - Executável sem atualizar os fontes: 20/02/25 08:51:53:198 - Autenticando Token... 20/02/25 08:51:53:199 - Comando Enviar: TOAuth 20/02/25 08:51:53:199 - Header Envio:Authorization: Basic ZTA0Yzk1OWMtNTNkMC00NDMxLTg0YjYtY2Q1NTE0ZDQ4ZjU3OmUwNGM5NTljLTUzZDAtNDQzMS04NGI2LWNkNTUxNGQ0OGY1Nw== 20/02/25 08:51:53:199 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token 20/02/25 08:51:53:200 - Body Envio (Payload):client_id={AQUI ESTA O CLIENT ID DO CLIENTE}&scope=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&grant_type=client_credentials 20/02/25 08:51:53:382 - Validade: 20/02/2025 08:56:53 20/02/25 08:51:53:382 - Header Resposta:HTTP/1.1 200 OK .... - Executável com fontes atualizados: 20/02/25 09:25:24:023 - Autenticando Token... 20/02/25 09:25:24:023 - Comando Enviar: TOAuth 20/02/25 09:25:24:024 - Header Envio:Authorization: Basic ZTA0Yzk1OWMtNTNkMC00NDMxLTg0YjYtY2Q1NTE0ZDQ4ZjU3Og== 20/02/25 09:25:24:024 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token 20/02/25 09:25:24:024 - Body Envio (Payload):client_id={AQUI ESTA O CLIENT ID DO CLIENTE}&scope=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&grant_type=client_credentials 20/02/25 09:25:24:175 - Erro: HTTP_Code=400 Erro=Invalid client credentials 20/02/25 09:25:24:176 - Cookies: 20/02/25 09:25:24:176 - 27aaac5958b4d19fcd3b3a545df47124=fdb13ecdc01663c5df68ca1b5058e9da TS012629b2=017a3a183b24cf36f47332eea2e2ea592fbfe00b7a23b1e062c8cd7a0d377e0988ef0e70921de45fa45c5c8ec4db0b96e76973a732a9774cc53c1ede476200c4fa3c583403 .... ai verifiquei que no arquivo "ACBrBoletoW_Sicoob" na função "DefinirParamOAuth" foi incluída a linha "OAuth.ExigirClientSecret := False;" então comentei a mesma para testar, e ai passou a gerar o Header igual à versão que esta funcionando, mas continua retornando o erro: - Executável sem atualizar os fontes: 20/02/25 08:51:53:198 - Autenticando Token... 20/02/25 08:51:53:199 - Comando Enviar: TOAuth 20/02/25 08:51:53:199 - Header Envio:Authorization: Basic ZTA0Yzk1OWMtNTNkMC00NDMxLTg0YjYtY2Q1NTE0ZDQ4ZjU3OmUwNGM5NTljLTUzZDAtNDQzMS04NGI2LWNkNTUxNGQ0OGY1Nw== 20/02/25 08:51:53:199 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token 20/02/25 08:51:53:200 - Body Envio (Payload):client_id={AQUI ESTA O CLIENT ID DO CLIENTE}&scope=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&grant_type=client_credentials 20/02/25 08:51:53:382 - Validade: 20/02/2025 08:56:53 20/02/25 08:51:53:382 - Header Resposta:HTTP/1.1 200 OK .... - Executável com fontes atualizados e linha comentada: 20/02/25 08:52:26:458 - Autenticando Token... 20/02/25 08:52:26:458 - Comando Enviar: TOAuth 20/02/25 08:52:26:459 - Header Envio:Authorization: Basic ZTA0Yzk1OWMtNTNkMC00NDMxLTg0YjYtY2Q1NTE0ZDQ4ZjU3OmUwNGM5NTljLTUzZDAtNDQzMS04NGI2LWNkNTUxNGQ0OGY1Nw== 20/02/25 08:52:26:459 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token 20/02/25 08:52:26:459 - Body Envio (Payload):client_id={AQUI ESTA O CLIENT ID DO CLIENTE}&scope=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&grant_type=client_credentials 20/02/25 08:52:26:635 - Erro: HTTP_Code=400 Erro=Invalid client credentials 20/02/25 08:52:26:635 - Cookies: 20/02/25 08:52:26:636 - 27aaac5958b4d19fcd3b3a545df47124=ed78d8f4e1f738e3bf24050ce6db612c TS012629b2=017a3a183bc7eef8f2e6d1abbe879c80a1db48f1db36df9d454ff7ad0c1d37e07f14963924794b02a4410784ac169ec91b7e38260ebc19cb2a1de3d4d78648c2826f08d443 -
Efetuei os testes e funcionou corretamente. Obrigado
-
IPM.Provider.pas linha 185
-
Bom dia, Verificado que ao emitir NFSe na versão 100 da IPM, esta exigindo certificado digital, o qual não é necessário para o provedor. Precisei usar a mesma abordagem já utilizada nas versões 101 e 204, na procedure "Configuracao" adicionado a seguinte linha: ConfigGeral.UseCertificateHTTP := False; Não estou conseguindo fazer o upload do arquivo aqui no Tópico, mas somente adicionando a linha mencionada, resolveu o problema de emissão.
-
Mensagem desconto Boleto Calculo incorreto
Metasis Sistemas replied to Metasis Sistemas's tópico in ACBrBoleto
Acredito que o pessoal possa não estar usando, pois como mencionei acima, não faz sentido calcular um percentual se o valor devolvido é em R$, vejo que seria interessante deixarmos a função calculando corretamente, para quem for utilizar tal recurso. -
Mensagem desconto Boleto Calculo incorreto
Metasis Sistemas replied to Metasis Sistemas's tópico in ACBrBoleto
Sim a mensagem é gerada através da função do ACBR GerarMensagemPadraoDesconto, onde considera 3 parâmetros: "ATipoDesconto" que esta preenchido com "tdPercentualAteDataInformada" "AValorDesconto" que esta preenchido com "10" "ADataDesconto" que é usada para montar a mensagem case ATipoDesconto of tdPercentualAteDataInformada, tdPercentualSobreValorNominalDiaCorrido, tdPercentualSobreValorNominalDiaUtil : begin ValorDesconto := CalcularPercentualValor(AValorDesconto, ATitulo.ValorDocumento); end; else ValorDesconto := AValorDesconto; end; a função deveria calcular o valor correspondente ao percentual, porem após a modificação da função este calculo não faz sentido. Fiz o mesmo teste para o boleto Sicredi para verificar se poderia ser alguma particularidade, e apresenta o mesmo problema cai nas mesmas funções para gerar a mensagem. o calculo que esta sendo utilizado acredito que seja para calcular quando o valor "AValorDesconto" corresponde em percentual sobre o valor "ATitulo.ValorDocumento", porem o calculo não condiz com o escopo da função que esta sendo usado onde ele deveria calcular o valor correspondente ao percentual e não o percentual correspondente ao valor sendo que todo o retorno da função se da em valor "R$" function TACBrBoleto.GerarMensagemPadraoDesconto(const ATipoDesconto : TACBrTipoDesconto; AValorDesconto : Double; ATitulo : TACBrTitulo; ADataDesconto : TDateTime = 0): String; var ValorDesconto : Double; begin case ATipoDesconto of tdPercentualAteDataInformada, tdPercentualSobreValorNominalDiaCorrido, tdPercentualSobreValorNominalDiaUtil : begin ValorDesconto := CalcularPercentualValor(AValorDesconto, ATitulo.ValorDocumento); end; else ValorDesconto := AValorDesconto; end; case ATipoDesconto of tdValorFixoAteDataInformada, tdPercentualAteDataInformada : begin if ADataDesconto > 0 then Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' para pagamento até ' + FormatDateTime('dd/mm/yyyy',ADataDesconto) ); end; tdValorAntecipacaoDiaCorrido, tdPercentualSobreValorNominalDiaCorrido : begin Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' por dia de antecipaçao corrido.' ); end; tdValorAntecipacaoDiaUtil, tdPercentualSobreValorNominalDiaUtil : begin Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' por dia de antecipaçao útil.' ); end; tdNaoConcederDesconto : begin // depreciado... retrocompatibilidade com a implementação antiga // utilizar os enumeradores corretos quando houver descontos a exibir. if ADataDesconto > 0 then Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' para pagamento até ' + FormatDateTime('dd/mm/yyyy',ADataDesconto) ) else if ValorDesconto > 0 then Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' por dia de antecipaçao corrido.' ); end; end; end; -
Problema ao gerar mensagem padrão boleto na função TACBrBoleto.CalcularPercentualValor em um teste efetuado passando a variável AValorPercentual = 10 e a AValorDocumento = 5, o valor de desconto ate o vencimento deveria ser: 5 * 10% = 0,5; a função antes da ultima alteração calculava da seguinte forma: Result := (AValorPercentual / 100) * AValorDocumento; (10/100) *5 = 0,5; Resultado correto. a nova alteração esta calculando da seguinte forma: Result := (AValorPercentual / AValorDocumento) * 100 ; (10/5) * 100 = 200; Resultado incorreto. Ouve alguma alteração na forma de preencher o componente? o exemplo esta sendo preenchido com: Titulo.ValorDesconto := 10; Titulo.TipoDesconto := tdPercentualAteDataInformada;
-
Problema ConsultaDetalhe API Sicredi V2
Metasis Sistemas replied to Metasis Sistemas's tópico in ACBrBoleto
ok irei seguir esta abordagem. obrigado -
Problema ConsultaDetalhe API Sicredi V2
Metasis Sistemas replied to Metasis Sistemas's tópico in ACBrBoleto
a principio não esta caindo na função citada, esta seguindo o seguinte caminho: A principio realmente não faço todo o preenchimento do titulo novamente, preencho somente as informações necessárias para efetuar a baixa do mesmo: neste caso teria que fazer todo o preenchimento de todas as informações do titulo ao invés de informar diretamente o NossoNumero? -
Problema ConsultaDetalhe API Sicredi V2
Metasis Sistemas replied to Metasis Sistemas's tópico in ACBrBoleto
o mesmo ocorre na baixa devido a linha if ATitulo <> nil then LId := DefinirNossoNumero; -
Bom dia, Em testes na API de boletos do banco Sicredi v2, verifiquei o seguinte problema na unit "ACBrBoletoW_Sicredi_APIV2" ACBrBoleto_Sicredi_APIV2", ao fazer a consulta detalhe, informo o “NossoNumero” a ser consultado, porem ao passar pela função “DefinirParametrosDetalhe” a mesma está chamando "DefinirNossoNumero" o que está calculando e gerando um nosso número diferente do informado. efetuei a seguinte alteração para corrigir o problema: Na função "DefinirParametrosDetalhe" ao invés de usar "DefinirNossoNumero" utilizei "ATitulo.NossoNumero" que se refere ao número informado ao preencher o componente, desta forma a consulta funcionou corretamente. ACBrBoletoW_Sicredi_APIV2.pas
-
Bom dia o município de Iomere-SC passou a utilizar o provedor Betha. Adicionar no arquivo ACBrNFSeXServicos.ini. [4207577] Nome=Iomere UF=SC Provedor=Betha Obrigado
-
poderia utilizar a seguinte abordagem então para resolvermos o except: if (aJson.Values['resultado'].ValueType = jvArray) then begin aJsonViolacoes := aJson.Values['resultado'].AsArray; end else begin aJsonViolacoes := TJsonArray.Create; end; neste caso verifico se se o tipo é um Array senão crio o objeto vazio para continuar a execução sem causar erros.
-
Boa Tarde Encontrei um problema ao consultar o boleto na API do Sicoob. no arquivo ACBrBoletoRet_Bancoob.pas linha 130 esta disparando uma exceção devido ao retorno da consulta não ser do tipo array conforme documentação da api: então fiz a seguinte alteração para continuar preenchendo o componente, não sei se é a melhor forma, mas precisar ser ajustado senão a consulta não alimenta o componente mesma retornando os dados corretamente. alterei a linha aJsonViolacoes := aJson.Values['resultado'].AsArray; para: try aJsonViolacoes := aJson.Values['resultado'].AsArray; except aJsonViolacoes := TJsonArray.Create; end; segue o arquivo em anexo. ACBrBoletoRet_Bancoob.pas