
Luciano Rodrigues Pereira
Membros-
Total de ítens
214 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Luciano Rodrigues Pereira postou
-
Juliomar, 2 dúvidas: 1. A senha do certificado informo onde? 2. O escopo é tudo isso abaixo ou só uma dessas linhas, conforme a operação? pergunto porque tem um sinal de "+" em cada linha como se fosse tudo isso o escopo. ACBrBoleto1.Cedente.CedenteWS.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';
-
API Cobrança Sicoob - Como anexar o certificado digital?
um tópico no fórum postou Luciano Rodrigues Pereira ACBrBoleto
Vi na documentação do Sicoob que é necessário o certificado digital do tipo A1 para o uso da API de cobrança. Como eu anexo esse certificado no componente do ACBr? Tem alguma propriedade no componente ACBrBoleto para informar a localização do certificado, é isso? em ambiente de rede eu teria então de compartilhar uma pasta onde está o certificado. E a senha do certificado, onde informo? tem outra propriedade no componente? -
Não entendi. 1. Então existe um loop de envio para a lista de boletos dentro do comando "enviar", óbvio. E esse envio de cada um da lista é feito via Thread, em segundo plano? 2. Se o ACBr faz via Thread, não vai fazer diferença eu enviar um a um ou enviar a lista inteira de uma só vez, pois vai ser tudo via thread. O que muda é só que se eu mandar a lista toda de uma só vez eu vou estar usando o loop do ACBr e se eu mandar um a um vou usar meu próprio loop, mas vai tudo para segundo plano, não? 3. Quando eu uso o ProgressBar eu trago tudo para primeiro plano. Você diz para eu trocar meu ProgressBar por uma mensagem na tela para continuar usando as threads? Mas para uma interface com o usuário tem o problema da thread liberar de imediato a interface enquanto faz o processo em segundo plano e o usuário poder fechar a janela ou o app e matar o processo sem saber, não? Me explica melhor essa sua estratégia, por favor.
-
API Cobrança - Enviar Lista de Boletos ou um a um?
um tópico no fórum postou Luciano Rodrigues Pereira ACBrBoleto
Com exceção de tpConsulta, todos os demais comandos como tpInclui, tpAltera, tpBaixa e tpConsultaDetalhe usam a lista de boletos. Digamos que eu tenha que registrar 1.000 boletos. Eu adiciono os 1.000 boletos na lista e depois faço o ACBrBoleto1.enviar Ou envio um a um? Hoje eu faço um a um, ou seja, limpo a lista toda vez que faço a requisição de cada boleto. Isso porque eu não sei quanto tempo leva para fazer a requisição desta lista de uma vez só, porque se demorar o usuário terá a impressão que a aplicação está travada. Por isso faço um a um e uso uma Progressbar para acompanhar. Então eu pergunto: 1. Dentro do comando ACBrBoleto1.enviar ele faz um loop fazendo a requisição à API boleto à boleto que está na ListaDeBoletos? 2. O processo de enviar é feito em primeiro plano ou em segundo plano (via Threads)? Porque em segundo plano é bom que libera de imediato a interface da aplicação para o usuário. Em contrapartida, se o usuário que não sabe se o processo que está em segundo plano fechar a janela ou fechar o app ele mata o processo. Por isso não gosto de usar Threads, só quando crio um serviço que vai rodar em um servidor dedicado, mas para interface com o usuário não. 3. Vai fazer muita diferença em termos de tempo fazer um ACBrBoleto.enviar com uma lista de boletos populada com 1.000 boletos (usando o Loop interno do ACBr) ou fazer como estou fazendo, limpando a lista a cada boleto que vou fazer a requisição e enviando um a um (usando meu próprio loop) e acompanhando com a Progressbar? 4. O banco fala que cada requisição leva centésimo de segundo, mas nos testes com o ACBr demora bem mais que isso cada requisição. É por conta dos processos internos do ACBr? 5. Pela experiência de seus clientes, o tempo para uma requisição de uma lista de 1.000 boletos demora quanto tempo? Porque se levar uns 10 segundos vale a pena enviar a lista sem a ProgressBar, caso contrário é melhor enviar um a um e usar a ProgessBar para acompanhar o envio. Qual a melhor estratégia? -
Fiz a alteração no ACBrBoletoW_Sicredi_APIV2, rodei o ACBrInstall_Trunk2, fui no Delphi no meu app, recompilei e fiz um Build e agora FUNCIONOU. Estou anexando o ACBrBoletoW_Sicredi_APIV2.pas com a alteração. ACBrBoletoW_Sicredi_APIV2.pas
- 14 replies
-
- 1
-
-
- webservice
- acbrboleto
- (e 3 mais)
-
Eu já faço assim. Vem dando aquele erro de AV nas alterações e baixa (outro tópico) mas rodando diretamente do EXE funciona (por conta dos try/catch). O problema agora é só em alterar a data limite do desconto. Alterar data limite do desconto - Não dá pau, mas retorna com um código de erro 422 que eu explico abaixo: HTTP_UNPROCESSABLE_ENTITY (422) - Operação não permitida: Necessário informar pelo menos um dos descontos. Isso ocorre porque o ACBr está tentando montar a URL de requisição com os campos dataDesconto1, dataDesconto2 e dataDesconto3 e no manual do Sicredi página 78 diz que são data1, data2 e data3.
- 14 replies
-
- webservice
- acbrboleto
- (e 3 mais)
-
Webservice - alterar valor de desconto - Sicredi
um tópico no fórum postou Luciano Rodrigues Pereira ACBrBoleto
Muitas vezes o cliente emite boletos com valor de desconto quando pagos até o vencimento. Quando a gente quer alterar o vencimento e manter o desconto, neste caso é preciso enviar uma alteração de vencimento (já estou conseguindo enviar), uma alteração da data limite do desconto (que será o novo vencimento) este está com erro (outro tópico criado por mim, já anexei o manual do Sicredi) e por último posso opcionalmente mudar o valor do desconto também. No caso do valor do desconto, posso apenas mudar o valor sem mudar as datas, são coisas independentes. No Manual do Sicredi mostra em sua página 69 como alterar o valor do desconto, não sei como funcionaria nos outros bancos. Tentei fazer isso da forma abaixo mas deu pau, conforme imagem em anexo. Boleto1.ListadeBoletos.Clear; titulo:= AddTituloNaLista(); /// aqui vai fazer Titulo:= Boleto1.CriarTituloNaLista; e setar todos os campos. titulo.DataDesconto := edVencimento.Date; titulo.ValorDesconto:= edVl_MsgDesconto.Value; Boleto1.Configuracoes.WebService.Operacao := tpAltera; titulo.OcorrenciaOriginal.Tipo:= toRemessaAlterarOutrosDados; Boleto1.enviar; Eu já fazia isso através da troca de arquivos (Remessa/Retorno), mas na API não estou sabendo como fazer. Se não é da maneira acima, como é? -
Esse pastebin é só texto, não tem como anexar um PDF. Então estou compartilhando através de meu Onedrive. Você tem o print aí também. Manual da API da Cobrança - 3.3.pdf
- 14 replies
-
- 1
-
-
- webservice
- acbrboleto
- (e 3 mais)
-
Eu até mudei, reinstalei o ACBr novamente mas deu pane. Talvez a mudança não seja só nestas linhas, não sei dizer. Eu não consigo anexar o manual atualizado do Sicredi (versão 3.3 de 20/03/2024) por aqui por conta do tamanho do arquivo, mas você tem o print da página do manual aí no chamado. Vejam se corrigem isso aí, porque quando se tem um valor de desconto no boleto até o vencimento e você muda o vencimento, tenho de mudar também a data do desconto para a nova data de vencimento.
- 14 replies
-
- webservice
- acbrboleto
- (e 3 mais)
-
Webservice - Acess violation em enviar
Luciano Rodrigues Pereira replied to Luciano Rodrigues Pereira's tópico in ACBrBoleto
1. Instalei o Delphi e o ACBr (atualizado) do zero em outro computador e o erro persiste, então não é meu Delphi. E nem poderia ser, porque Registro e Consulta de boletos funcionam. 2. Em relação aos meus fontes, deixei para lá e fiz os testes no exemplo do ACBr (ACBrBoletoDemo), mas lá só tem Registro e Consulta de boletos e essas funções estão funcionando sem problema. Então mudei a Consulta para Baixa (é só usar a operação tpBaixa e ocorrencia original toRemessaBaixar), só para testar a baixa e o erro de AV também acontece no ACBrBoletoDemo, então não são meus fontes. 3. O erro só acontece quando rodando dentro do Delphi (após compilar), fora do Delphi não tem erro, acredito que por conta de algum try/excep. Mesmo dentro do Delphi, ele dá o erro, mas faz a baixa do boleto no banco corretamente. Então acredito que o problema seja na hora dele ler montar o Json de retorno do banco. 4. Para depurar eu mudei o pas onde acontece o erro (ACBrJSon.pas) para salvar em um txt cada chamada da função onde está o erro, e descobri que o erro é quando a função recebe como parâmetro "nome". Aí ele dá pane quando ele vai fazer LIndex := FJSON.IndexOf(AName); Nos demais campos mesmo com um índice negativo ele não dá erro. Mas no "nome" não tem índice nenhum. Esse "nome" é o primeiro campo dentro de "Pagador", mas Baixa, alteração de vencimento, alteração de data de desconto, alteração do valor de desconto, etc., não tem o campo Pagador como retorno da API. Tenho certeza que se houvesse em ACBrBoletoDemo a função de baixar boleto ou alterar vencimento, vocês veriam o problema. Se puderem testar aí vão ver o problema. Segue o txt que gerei em anexo. ACBrJason.pas function TACBrJSONObject.GetAsValue(const AName: string): TACBrJSONValue; AName: access_token - indice: 0 expires_in - indice: 1 error - indice: 1 status - indice: -1 error - indice: 1 message - indice: 3 erros - indice: -1 codigoBarras - indice: -1 linhaDigitavel - indice: -1 carteira - indice: -1 seuNumero - indice: -1 nossoNumero - indice: -1 pagador - indice: -1 nome <------ AQUI DÁ O ERRO -
Webservice - Acess violation em enviar
Luciano Rodrigues Pereira replied to Luciano Rodrigues Pereira's tópico in ACBrBoleto
Para ter certeza que não era meu software eu usei o ACBrBoletoDemo. Só troquei a operacao de tpRegistrar para tpBaixar na procedure do botão "Registra Boleto onLine". E deu o erro de Acess Violation. -
Webservice - Acess violation em enviar
Luciano Rodrigues Pereira replied to Luciano Rodrigues Pereira's tópico in ACBrBoleto
Lembrando o processo que faço: Configuro todas as informações do WebService e cedente. Depois eu apenas adiciono o título na lista de boletos com Boleto1.ListadeBoletos.Clear; titulo:= Boleto1.CriarTituloNaLista; titulo.OcorrenciaOriginal.Tipo:= toRemessaBaixar; titulo.NossoNumero := nosso número que estou tentando baixar por exemplo Boleto1.ListadeBoletos.Add(titulo); faço: Boleto1.Configuracoes.WebService.Operacao := tpBaixa; E envio o comando: Boleto1.enviar; A partir daí ele vai baixar com sucesso mas vai dar Acess Violation nesta linha do ACBrJson aí e não tem como depurar a partir do Acess Violation. Portanto, não tem como eu ver o que ele está retornando, Eu acredito que o problema seja quando ele vai montar esse JSon. Mas não tem como eu ver onde está o problema, pois eu só dou o comando enviar e ele não retorna para linha seguinte do meu app, ele dá erro dentro do processo enviar. E o retorno do Json é após (ou na rotina) de enviar. Só lembrando que os comandos de tpRegistrar e tpConsultaDetalhe funcionam de boa, mas tpBaixar e tpAlterarVencimento está com esse problema. O ACBr realmente baixa e altera o vencimento com sucesso, mas logo depois dá o erro de Acess Violation e não retorna. Entendeu? -
Webservice - Acess violation em enviar
Luciano Rodrigues Pereira replied to Luciano Rodrigues Pereira's tópico in ACBrBoleto
Eu fiz isso, são a segunda e terceira imagens em anexo. O problema está dentro do meu comando .enviar, dentro desta rotina do ABRr, em ACBrJson, dá uma olhada nos prints, por favor. -
V2. Caso tenha que mudar o componente, como e quando se dá essa mudança? Eu mudo aqui e subo a alteração como anexo? ou vocês mudam por aí? É só trocar em ACBrBoletoW_Sicredi_APIV2.pas na procedure RequisicaoAlteraDataDesconto os campos de datas de desconto de datadesconto1, datadesconto2 e datadesconto3 para data1, data2 e data3.
- 14 replies
-
- webservice
- acbrboleto
- (e 3 mais)
-
Webservice - Acess violation em enviar
Luciano Rodrigues Pereira replied to Luciano Rodrigues Pereira's tópico in ACBrBoleto
Não entendi, entrar com F7 onde? Outra coisa, na hora de registrar ou consultar não dá erro. Só dá erro na hora de baixar e alterar o vencimento. Mas ele baixa e altera o vencimento com sucesso (como pode ver nos anexos) e só depois dá o acess violation nesta linha aí do ACBr, dentro da rotina de "enviar". Não dá para entender. Acredito que esse acess violation tem a mesma razão em todos os casos, mas não sei que razão é essa. Só lembrando que esses problemas não tinham antes de eu atualizar o ACBr e eu não mudei uma linha sequer na aplicação antes da atualização do ACBr e vinha funcionando perfeitamente. Então só pode ser alguma coisa no componente. -
Webservice - Acess violation em enviar
um tópico no fórum postou Luciano Rodrigues Pereira ACBrBoleto
Estou fazendo os testes da API de registro de boletos começando pelo Sicredi. Estava fazendo já o registro, baixa, consulta e alteração de vencimento com sucesso, dando problema apenas na alteração da data limite do desconto (outro tópico). Mas após atualizar o ACBr (rodei o ACBrInstall_Trunk2) para ver se resolvia, só apareceram outros problemas que não existiam como relatado abaixo: 1. Registro - Problema em dados com acentuação, testei retirando os acentos e funcionou, mas são inúmeros clientes. Já existe outro tópico em aberto com o problema. 2. Baixa - Baixa com sucesso, mas dá erro de Acess Violation. Já depurei e é dentro da rotina do enviar. Como pode ver nos prints em anexo 3. Alterar Vencimento - Altera com sucesso, mas dá erro de Acess Violation. Já depurei e é dentro da rotina do enviar. 4. Alterar data limite do desconto. Dá erro de Acess Violation - Outro tópico. Todos esses erros de Acess Violation não tinham antes no ACBr, o debuger por exemplo mostrava o erro do pas do ACBr eemplo: Agora tudo dá erro de Acess Violation, mesmo quando o comando é executado com sucesso. RetornoBaixa.txt RetornoAlteraDataLimiteDesconto.txt RetornoAlteraVencimento.txt -
Detectei um problema na alteração da data limite do desconto no nome dos parâmetros que pede o manual e o nome que o ACBr está enviando. O manual do Sicredi pede data1, data2 e data3 e o ACBr está enviando datadesconto1, datadesconto2 e datadesconto3, como pode ver nas imagens em anexo. Por isso dá o erro: 29/03/24 19:13:54:462 - Retorno Envio: TBoletoW_Sicredi_APIV2 29/03/24 19:13:54:462 - C digo do Envio: 422 1.1 Unprocessable Entity 29/03/24 19:13:54:462 - Retorno Envio: Result={"timestamp":"2024-03-29T22:13:54.430+0000","error":"UNPROCESSABLE_ENTITY","code":"422","message":"Opera o n o permitida: Necess rio informar pelo menos um dos descontos."} Só imagino que seja o problema. Já tentei de tudo.
- 14 replies
-
- webservice
- acbrboleto
- (e 3 mais)
-
Tenho a seguinte situação: Tenho um boleto com vencimento digamos 31/03/2024 com com um valor de desconto para caso seja pago até o vencimento. Agora quero fazer uma alteração no vencimento do boleto para 05/04/2024, mas quero que o desconto passe a ser até o novo vencimento (05/04/2024). Quando trabalhando com troca de arquivos (remessa/retorno) eu enviava duas linhas, uma para a mudança do vencimento(toRemessaAlterarVencimento) e outra para a concessão do desconto (toRemessaConcederDesconto). E trabalhando com a API como faço? quando mando o tipo de operação tpAltera ele está alterando apenas o vencimento e não achei um tipo de operação para o valor e a data limite do desconto. Estou testando no Sicredi e vi que lá seriam 3 comandos de instrução. Um para alterar o vencimento, outro para alterar o valor do desconto e outro para alterar a data limite para o desconto. Eu mando 3 comandos de tpAltera? um com OcorrenciaOriginal.Tipo = toRemessaAlterarVencimento e outro com OcorrenciaOriginal.Tipo = toRemessaConcederDesconto? e a data limite para o desconto? como mando? E vai ser assim para todos os bancos?
- 14 replies
-
- webservice
- acbrboleto
- (e 3 mais)
-
Webservice - Operação tpAlterar
Luciano Rodrigues Pereira replied to Luciano Rodrigues Pereira's tópico in ACBrBoleto
O erro era meu. estava enviando a data antes da alteração. Encerrando o chamado -
Webservice - Operação tpAlterar
Luciano Rodrigues Pereira replied to Luciano Rodrigues Pereira's tópico in ACBrBoleto
Juliomar, achei que a OcorrenciaOriginal.Tipo que tem valores como toRemessaRegistrar, toRemessaAlterarVencimento, etc. fosse usado apenas na geração de arquivos de remessa e não usando API. De qualquer forma setei o OcorrenciaOriginal.Tipo = toRemessaAlteraVencimento e TOperacao = tpAlterar e testei. O retorno deu Ok, código 202, mas não alterou o vencimento no banco (Sicredi). Testei usando o postman que o banco disponibilizou e funcionou perfeitamente. Alterou no mesmo minuto o vencimento no banco. Help! -
Estou começando os testes em meu sistema do registro de boletos via webservice pelo Sicredi. Já consegui registrar, baixar e consultar detalhes dos títulos. Mas não consegui alterar o vencimento. Para registrar usei o TOperacao tpRegistrar, para baixar tpBaixa, para consultar detalhes tpConsultaDetalhe e para alterar o vencimento tpAltera, mas na hora de usar o tpAltera deu a seguinte mensagem de erro: Como faça para fazer a alteração do vencimento? tem alguma coisa a ver o fato de eu estar usando a API versão 2? Eu teria de usar a tal de APIECOMM? eu acho que não tinha conseguido com esta, tinha dado algum erro na hora de validar as credenciais, não lembro ao certo, por isso passei para a V2. Outra pergunta: Para qualquer banco vou usar sempre essas mesmas operações?
-
AcbrBoleto - Webservice Sicredi
Luciano Rodrigues Pereira replied to Luciano Rodrigues Pereira's tópico in ACBrBoleto
Sim, eu sei Juliomar. O que quis dizer é que o Demo não roda sem a linha que acrescentei setando o SeuNumero. Entendeu? E quanto aos outros questionamentos que fiz?- 10 replies
-
- acbrboleo
- webservice
-
(e 2 mais)
Tags: