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;