Luciano Rodrigues Pereira
Membros-
Total de ítens
108 -
Registro em
-
Última visita
Últimos Visitantes
1.433 visualizações
Luciano Rodrigues Pereira's Achievements
-
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)