Membros Pro ademar-datalan Postado 18 Julho Membros Pro Postado 18 Julho Ao utilizar a rotina de consulta de PIX recebidos, tivemos problemas com o Banco do Brasil, que gerar uma rejeição por não informar corretamente o Time Zone, fizemos um ajuste na função function TACBrPixEndPointPix.ConsultarPixRecebidos, e com esse ajuste deu certo, gostaria que fosse feito ajuste na versão oficial do AcBr. function TACBrPixEndPointPix.ConsultarPixRecebidos(Inicio: TDateTime; Fim: TDateTime; const TxId: String; const CpfCnpj: String; PagAtual: Integer; ItensPorPagina: Integer): Boolean; var s, e: String; RespostaHttp: AnsiString; ResultCode: Integer; begin if (NivelLog > 1) then begin RegistrarLog('ConsultarPixRecebidos( '+FormatDateTimeBr(Inicio)+', '+ FormatDateTimeBr(Fim)+', '+ TxId+', '+CpfCnpj+', '+ IntToStr(PagAtual)+', '+ IntToStr(ItensPorPagina)+' )'); end; Clear; fPSP.PrepararHTTP; with fPSP.URLQueryParams do begin Values['inicio'] := DateTimeToIso8601(Inicio); Values['fim'] := DateTimeToIso8601(Fim); //------- Alterei aqui para resolver por enquanto ---------- Values['inicio'] := Values['inicio'].Replace('Z','-03:00'); Values['fim'] := Values['fim'].Replace('Z','-03:00'); // -------------------------------------------------------- s := Trim(TxId); if (s <> '') then begin Values['txid'] := s; Values['txIdPresente'] := 'true'; end; s := OnlyNumber(CpfCnpj); if (s <> '') then begin e := ValidarCNPJouCPF(s); if (e <> '') then raise EACBrPixException.Create(ACBrStr(e)); if Length(s) < 12 then Values['cpf'] := s else Values['cnpj'] := s; end; if (PagAtual > 0) then Values['paginacao.paginaAtual'] := IntToStr(PagAtual); if (ItensPorPagina > 0) then Values['paginacao.itensPorPagina'] := IntToStr(ItensPorPagina); end; fPSP.AcessarEndPoint(ChttpMethodGET, EndPoint, ResultCode, RespostaHttp); Result := (ResultCode = HTTP_OK); if Result then fPixConsultados.AsJSON := String(RespostaHttp) else fPSP.TratarRetornoComErro(ResultCode, RespostaHttp, Problema); end;
Moderadores Juliomar Marchetti Postado 18 Julho Moderadores Postado 18 Julho Anexe a unit mas lembrando deve ser compatível com delphi 7 e to vendo no trecho postado que tu se ateve a sua versão do delphi perdendo compatibilidade Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Membros Pro ademar-datalan Postado 19 Julho Autor Membros Pro Postado 19 Julho Olá, Não tenho o delphi 7 para testar, não sei qual seria o comando que deveria se usado nesse caso. ACBrPIXCD.pas
Moderadores Juliomar Marchetti Postado 19 Julho Moderadores Postado 19 Julho isso não existe '].Replace('Z','-03:00'); tenho que confirmar mas esse também não DateTimeToIso8601(Inicio); Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Membros Pro ademar-datalan Postado 30 Julho Autor Membros Pro Postado 30 Julho (editado) Bom dia, Teve alguma evolução nesse assunto? Editado 30 Julho por ademar-datalan
Moderadores Juliomar Marchetti Postado 30 Julho Moderadores Postado 30 Julho no caso citei acima situações que não levou em consideração a compatibilidade com outras versões delphi Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Membros Pro ademar-datalan Postado 30 Julho Autor Membros Pro Postado 30 Julho (editado) Ok, Mas não entendi se nós temos que fazer alguma coisa ou a equipe do ACBr vai fazer os ajustes para que possa ser mantida a compatibilidade? Editado 30 Julho por ademar-datalan
Consultores EliasCesar Postado 30 Julho Consultores Postado 30 Julho Em 18/07/2024 at 17:18, ademar-datalan disse: uma rejeição por não informar corretamente o Time Zone Olá @ademar-datalan, Qual é a rejeição que vc está tendo? Se puder mandar o log completo por favor. Em 18/07/2024 at 17:18, ademar-datalan disse: //------- Alterei aqui para resolver por enquanto ---------- Values['inicio'] := Values['inicio'].Replace('Z','-03:00'); Values['fim'] := Values['fim'].Replace('Z','-03:00'); // -------------------------------------------------------- Analisando sua alteração, vi que vc apenas mudou o TimeZone. Para fazer isso bastaria informar o parâmetro de timezone na função 'DateTimeToIso8601', nesse trecho do código: Values['inicio'] := DateTimeToIso8601(Inicio, '-03:00'); Values['fim'] := DateTimeToIso8601(Fim, '-03:00'); Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC
Membros Pro ademar-datalan Postado 30 Julho Autor Membros Pro Postado 30 Julho Recebemos esse comunicado do suporte do BB ------------------------------------------------------- A data/horário informado não está sendo informado o horário com -3 conforme RFC 3339 UTC - 3 necessário para trazer os dados conforme horário de Brasília, o que pode estar gerando inconsistências. Ao informar a data de início sem o UTC correto, e colocar por exemplo "inicio":"2024-07-14T21:00:00","fim":"2024-07-15T20:59:59 serão apresentadas as transações entre 0h00 de 15/07 às 23h59 de 15/07, e a transação realizada às 21h27 de 15/07 não é exibida. Como não informam o UTC -3, a consulta está trazendo as cobranças realizadas COM UMA DIFERENÇA DE 3 HORAS. O correto para trazer o pagamento informado seria: "inicio":"2024-07-14T21:00:00-03:00","fim":"2024-07-15T20:59:59-03:00 Gentileza ajustar as consultas com UTC -3 conforme exemplo abaixo e refazer a consulta: Fonte:https://publicador.developers.bb.com.br/bucket/Documentacao_API_Pix_v2_pix_74b8abd91c.pdf
Moderadores Juliomar Marchetti Postado 30 Julho Moderadores Postado 30 Julho dúvida tu está usando algum servidor TS ou algo assim ou até fora do país? ou está no fuso horário errado. quem sabe seja isso Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Membros Pro ademar-datalan Postado 30 Julho Autor Membros Pro Postado 30 Julho Está sendo usando num servidor local com o fuso horário correto do Brasil.
Consultores Solution EliasCesar Postado 30 Julho Consultores Solution Postado 30 Julho Olá @ademar-datalan Enviei uma possível correção ao SVN, rev 34652. Atualize seus fontes e faça um teste novamente por favor. Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC
Membros Pro ademar-datalan Postado 2 Agosto Autor Membros Pro Postado 2 Agosto Deu tudo certo, obrigado 1
Consultores Diego Foliene Postado 2 Agosto Consultores Postado 2 Agosto Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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 !!
Recommended Posts