Ir para conteúdo
  • Cadastre-se

marciamagall

Membros
  • Total de ítens

    43
  • Registro em

  • Última visita

Tudo que marciamagall postou

  1. Juliomar, bom dia. Mas como foi impresso utilizando o acbr, um boleto do banco stone, com logo e tudo? Eu também procurei e não encontrei nada nos fontes. Boleto.pdf
  2. Bom dia, É possível utilizar o banco 197 Stone na impressão de boletos hoje pelo componente ACBr? Não sei o que houve, mas aconteceu de imprimir um boleto com banco errado, e estou procurando nos fontes do acbr e não estou encontrando o banco 197.
  3. Bom dia, modifiquei a unit e testei tanto com boleto pago via pix como para boleto pago via código de barras. ACBrBoletoRet_Santander_API.pas
  4. Ele volta sim, peguei a parte do log que retorna o valor correto pago com multa: 30/05/25 10:59:06:800 - Retorno Envio: TBoletoW_Santander_API 30/05/25 10:59:06:800 - C digo do Envio: 200 1.1 OK 30/05/25 10:59:06:801 - Retorno Envio: {"_pageable":{"_moreElements":false},"_content":[{"returnCode":"000 - Consulta realizada com sucesso","documentNumber":"05441657000108","beneficiaryCode":45485,"bankNumber":15290,"clientNumber":"00478162A","dueDate":"2025-05-20","nominalValue":483.01,"issueDate":"2025-04-22","participantCode":"","status":"Baixado","statusComplement":"Via Pagamento Pix","interestValue":0.00,"discountValue":0.00,"deductionValue":0.00,"paidValue":492.83}]}
  5. Boa tarde. Estou com uma dúvida no método LerRetorno da unit ACBrBoletoRet_Santander_API. Estou testando boletos pagos com MULTA, onde o valor pago é maior que o valor original do boleto. Nos testes com boletos pagos pelo código de barras, o retorno é processado corretamente e o valor pago vem correto. Nos boletos pagos com o qrcode, via pix, o valor pago, quando existe a multa, volta com o valor original do boleto, e não vem o valor pago com multa. Vou colocar um pedaço do json de retorno como exemplo. { "_pageable": { "_moreElements": false }, "_content": [ { "returnCode": "000 - Consulta realizada com sucesso", "documentNumber": "05441657000108", "beneficiaryCode": 45485, "bankNumber": 15290, "clientNumber": "00478162A", "dueDate": "2025-05-20", "nominalValue": 483.01, "issueDate": "2025-04-22", "participantCode": "", "status": "Baixado", "statusComplement": "Via Pagamento Pix", "interestValue": 0.0, "discountValue": 0.0, "deductionValue": 0.0, "paidValue": 492.83 } ] }, Essa é a parte que volta o valor com multa e esse bloco não está sendo lido na function LerRetorno. Abaixo a parte do código de deveria ser corretamente o paidValue mas não está lendo: ( debugando o LExisteBankSlip é true, e o nindiceobj fica com o valor 1, que é exatamente esse bloco acima q coloquei do json, mas o paidvalue está dentro de um _content e isso não está no bloco de código . if LExisteBankSlip then nIndiceOBJ := strtoint(IfThen(LTotalObjetos>1,'1','0')) else nIndiceOBJ := 0; LJSONObject := LJsonArray.ItemAsJSONObject[nIndiceOBJ]; if nIndiceOBJ = 0 then begin ARetornoWS.DadosRet.TituloRet.NossoNumero := LJSONObject.AsString['bankNumber']; ARetornoWS.DadosRet.TituloRet.SeuNumero := LJSONObject.AsString['clientNumber']; if ARetornoWS.DadosRet.TituloRet.Vencimento = 0 then ARetornoWS.DadosRet.TituloRet.Vencimento := StringToDateTimeDef(LJSONObject.AsString['dueDate'], 0, 'yyyy-mm-dd'); if ARetornoWS.DadosRet.TituloRet.DataDocumento = 0 then ARetornoWS.DadosRet.TituloRet.DataDocumento := StringToDateTimeDef(LJSONObject.AsString['issueDate'], 0, 'yyyy-mm-dd'); if ARetornoWS.DadosRet.TituloRet.ValorDocumento = 0 then ARetornoWS.DadosRet.TituloRet.ValorDocumento := LJSONObject.AsFloat['nominalValue']; if NaoEstaVazio(ARetornoWS.DadosRet.TituloRet.EstadoTituloCobranca) then ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca := RetornaCodigoOcorrencia(LJSONObject.AsString['status']); end; if EstaVazio(ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca) then ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca := RetornaCodigoOcorrencia(LJSONObject.AsString['status']); ARetornoWS.DadosRet.TituloRet.ValorDesconto := LJSONObject.AsFloat['discountValue']; ARetornoWS.DadosRet.TituloRet.ValorPago := LJSONObject.AsFloat['paidValue']; ARetornoWS.DadosRet.TituloRet.ValorMoraJuros := LJSONObject.AsFloat['interestValue']; ARetornoWS.DadosRet.TituloRet.ValorAbatimento := LJSONObject.AsFloat['deductionValue']; No caso do boleto pago com codigo de barras, o valor está em outra parte do json e a função busca corretamente. A leitura do valor pago está nesse bloco abaixo para o boleto pago com código de barras: //settlementData consulta para pegar data do pagamento if (LJsonArray.ItemAsJSONObject[nIndiceOBJ].AsJSONArray['settlementData'].Count > 0) then begin if LJsonArray.ItemAsJSONObject[nIndiceOBJ].ValueExists('settlementData') then begin LJSONObject := LJsonArray.ItemAsJSONObject[nIndiceOBJ].AsJSONArray['settlementData'].ItemAsJSONObject[0]; if ARetornoWS.DadosRet.TituloRet.DataCredito = 0 then ARetornoWS.DadosRet.TituloRet.DataCredito := StringToDateTimeDef(LJSONObject.AsString['settlementCreditDate'], 0, 'yyyy-mm-dd'); if ARetornoWS.DadosRet.TituloRet.DataMovimento = 0 then ARetornoWS.DadosRet.TituloRet.DataMovimento := StringToDateTimeDef(LJSONObject.AsString['settlementDate'], 0, 'yyyy-mm-dd'); if ARetornoWS.DadosRet.TituloRet.DataBaixa = 0 then ARetornoWS.DadosRet.TituloRet.DataBaixa := StringToDateTimeDef(LJSONObject.AsString['settlementDate'], 0, 'yyyy-mm-dd'); ARetornoWS.DadosRet.TituloRet.ValorPago := LJSONObject.AsCurrency['settlementCreditedValue']; if EstaVazio(ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca) then ARetornoWS.DadosRet.TituloRet.CodigoEstadoTituloCobranca := RetornaCodigoOcorrencia(LJSONObject.AsString['status']); if EstaVazio(ARetornoWS.DadosRet.TituloRet.EstadoTituloCobranca) then ARetornoWS.DadosRet.TituloRet.EstadoTituloCobranca := LJSONObject.AsString['status']; ARetornoWS.DadosRet.TituloRet.ValorTarifa := LJSONObject.AsFloat['settlementDutyValue']; end; end; Preciso de uma ajuda, alguém já passou por isso?
  6. Boa tarde, ok Juliomar, vou fazer isso. Obrigada!
  7. Existe uma forma de imprimir um boleto itau sem o qrCode? Eu enviei o boleto via api, e quero imprimir sem o qrcode, pois por enquanto não vou querer que os clientes façam o pagamento utilizando o qrcode. Tentei limpar o emv, url e txId mas o componente não deixa limpar. Mesmo limpando as propriedades, elas voltam. Tentei mudar o layout para lPadrao mas também é impresso o qrcode. Tentei alterar o ACBrBoleto.Cedente.CedenteWS.IndicadorPix para False, somente na hora de imprimir e também não deu certo. Vou explicar pq ainda não quero que paguem utilizando o qrcode. Na consulta do boleto (view=specific), os dados (pagamentos_cobranca) não são retornados. Somente os pagamentos via código de barras retornam o valor pago, valor da multa, e data do pagamento. Se eu conseguir imprimir o boleto sem o qrcode seria melhor.
  8. Juliomar, bom dia. Desculpe a demora pelo retorno, mas eu precisei aguardar pra atualizar o acbr. Agora que atualizei e testei novamente, continuo com o mesmo problema. A única forma de resolver o erro que estou tendo, foi mexendo na unidade ACBrBoleto.pas. A alteração que eu fiz foi a seguinte: procedure TACBrWebService.SetCertificado(const Value: AnsiString); begin FCertificado := Value; if Value<>'' then //adicionado if FArquivoCRT := EmptyStr; end; procedure TACBrWebService.SetChavePrivada(const Value: AnsiString); begin FChavePrivada := Value; if Value<>'' then //adicionado if FArquivoKEY := EmptyStr; end; Feito isso, o boleto pix é enviado normalmente sem erros.
  9. Bom dia. Estou fazendo exatamente igual o que está nesse link enviado. Essa parte que perde o conteúdo dos arquivos key e crt ocorre debugando dentro do fonte do acbr. Vou colocar dois prints para melhor entendimento. No meu entendimento, nem teria lógica setar as propriedades ArquivoCRT e ArquivoKEY, sabendo que nas linhas abaixo elas serão obrigatoriamente limpas, não é? Isso dentro do método DefinirCertificado.
  10. Não estou usando PIX, é um boleto com qrcode. (bolecode) Eu acredito que preenchi no componente somente o que é necessário. Sempre preciso enviar os arquivos .key e o .crt em todos os envios de boleto do banco itaú. Mas nesse ponto do código que passei, ele limpa os arquivos. Isso porque: procedure TACBrWebService.SetChavePrivada(const Value: AnsiString); begin FChavePrivada := Value; FArquivoKEY := EmptyStr; end;
  11. Bom dia. Estou com uma dúvida nessa parte do fonte do ACBR. { TBoletoWSREST } procedure TBoletoWSREST.DefinirCertificado; begin BoletoWS.ArquivoCRT := Boleto.Configuracoes.WebService.ArquivoCRT; BoletoWS.ArquivoKEY := Boleto.Configuracoes.WebService.ArquivoKEY; BoletoWS.ChavePrivada := Boleto.Configuracoes.WebService.ChavePrivada; BoletoWS.Certificado := Boleto.Configuracoes.WebService.Certificado; Estou tentando registrar um bolecode no banco itaú, e passei os arquivos CRT e KEY. Consigo pegar o acess_token normalmente, mas quando vou enviar o boleto, passa por esse código acima, e a ChavePrivada e Certificado estão vazios. Ao passar por essas linhas, o ArquivoCRT, e ArquivoKey ficam limpos, pois no set dessas propriedades, obrigatoriamente limpa o ArquivoCRT e ArquivoKey. Como sempre vai passar por essas linhas, é inútil eu setar o arquivoCRT e ArquivoKey pois elas estão sendo apagadas no set da ChavePrivada e Certificado. O que estou fazendo de errado? Porque preciso enviar o ArquivoCRT e ArquivoKey no envio do bolecode.
  12. Bom dia. Descobri porque dava o erro "Falha Envio: "CarregarCertificadoDeNumeroSerie" não suportado em: TDFeSSLCryptClass" ao tentar enviar o boleto para o banco Credisis. Tem que setar a propriedade ABoleto.Configuracoes.WebService.UseCertificateHTTP para False. Fazendo isso, o certificado não é mais solicitado. Obrigada!
  13. Tem o banco sim, só não sei como implementar. Vi que existe o exemplo dos outros bancos, mas do credisis não achei. Não sei porque está pedindo o arquivo PFX. Talvez alguma propriedade do componente que não alimentei.
  14. Juliomar, boa tarde. Tanto nesse link, que eu já tinha visto, como também no arquivo configWebService.txt que está na pasta do exemplo ACBr, não tem sobre o banco credisis.
  15. Bom dia! Gostaria de saber se alguém tem alguma configuração exemplo do componente ACBrBoleto para o envio via api do cnab para o banco Credisis. Precisa parametrizar as propriedades do arquivo PFX? Fiz a programação para o banco do brasil e não necessitou do certificado. Estou tendo o retorno: "Falha Envio: DadosPFX, ArquivoPFX, URLPFX ou NumeroSerie não especificados !" Tentei enviar só o Numero de Série e não funcionou, deu esse outro erro: "Falha Envio: "CarregarCertificadoDeNumeroSerie" não suportado em: TDFeSSLCryptClass". Obrigada!
  16. Bom dia, Italo. Deu certo, se eu pegar o xml originalmente gerado, no envio, carregar no componente, e consultar, automaticamente o xml protocolado é salvo na pasta. Obrigada!
  17. Juliomar, então como eu obtenho esse xml assinado e protocolado? Na NFe, na consulta, dá pra baixar o xml, no MDFe como isso funciona? Eu vi uns posts dizendo que na consulta, o xml assinado e protocolado fica salvo na pasta, mas isso não acontece.
  18. Eu gerei o xml, enviei pra sefaz, e o sefaz oscilou. Com isso, não tenho o xml assinado e protocolado. Preciso baixar ele. Qual seria a forma correta de obter esse xml? Eu consulto a chave de acesso que tenho salva, e obtenho sucesso na consulta, mas o xml protocolado não fica salvo na pasta, mesmo tendo configurado o componente para salvar os arquivos.
  19. Boa tarde! Fiz esse teste, e não estou tendo sucesso. O que está acontecendo: ACBrMDFe1.Manifestos.Clear; Gerar_MDFe; //estou alimentando o componente aqui ACBrMDFe1.Manifestos.Items[0].MDFe.infMDFe.ID := vChaveAcesso; //aqui estou tentando colocar a chave de acesso correta ACBrMDFe1.WebServices.Consulta.MDFeChave := vChaveAcesso;//aqui estou tentando colocar a chave de acesso correta ACBrMDFe1.Manifestos.GerarMDFe; ACBrMDFe1.Manifestos.Assinar; //nesse comando, gerou um xml na pasta, mas com chave de acesso errada, diferente da que eu coloquei no componente ACBrMDFe1.Manifestos.Validar; vlb_consulta:= ACBrMDFe1.WebServices.Consulta.Executar; //nesse comando, gerou 2 xmls na pasta ( chaveacessocorreta-ped-sit.xml e chaveacessocorreta-sit.xml) e não gerou o xml que realmente preciso, que é o xml completo do mdfe com a chave correta, assinado e protocolado O que estou fazendo de errado?
  20. Juliomar, obrigada pela resposta. E se eu não tenho o xml original? Só colocando a chave e consultando, o componente não consegue baixar o xml protocolado?
  21. Estou tentando baixar o xml protocolado do MDFe na consulta, pois no envio houve oscilação da Sefaz, mas ele não aparece na pasta. Já verifiquei outros tópicos que falam que o xml será salvo automaticamente na pasta se as configurações pra salvar estiverem ativadas e no meu caso estão. (ACBrMDFe1.Configuracoes.Geral.Salvar e ACBrMDFe1.Configuracoes.Arquivos.Salvar ) Esses são os comandos que estou executando: ACBrMDFe1.Manifestos.Clear; ACBrMDFe1.WebServices.Consulta.MDFeChave := chave de acesso do mdfe vlb_consulta:= ACBrMDFe1.WebServices.Consulta.Executar; Preciso fazer mais alguma coisa pra obter o xml assinado e protocolado do MDFe? O vlb_consulta volta como True. Na pasta, está salvando dois arquivos: 1) chaveacesso-ped-sit.xml Com a solicitação do pedido de consulta 2) -sit.xml Com o retorno da consulta: .... <cStat>100</cStat> <xMotivo>Autorizado o uso do MDF-e</xMotivo> ... Mas o xml vem com os eventos de passagem nos postos fiscais e não o xml protocolado que eu preciso. Alguém poderia me ajudar?
  22. Bom dia, estou com o mesmo problema.
  23. Juliana, descobri o motivo. Faltou preencher a inscrição municipal do prestador no componente. Obrigada.
  24. No comando ACBrNFSe1.Enviar, dá acess violation. Anexo rps 3519110766076500010556000000000006790-rps.xml
  25. Daniel, como vc resolveu isso? Pode me ajudar? Estou com o mesmo problema.
×
×
  • 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...