Comportamento inesperado com envio de dados
07/04/2021
0
Tenho uma funcao 'Executa_Post' que eu uso para transmitir movimentos de vendas para um servidor de um parceiro, nessa funcao eu retorno o 'ResponseCode' para marcar se a venda foi transmitida ou nao (logo depois de chamar a funcao eu analiso o seu retorno, se foi 200 ou 208 entao marco a venda como transmitida)... ocorre que os codigos de retorno 200 e 208 esta gerando a situacao de me retornarem esses codigos sem que a venda tenha sido devidamente gravada no servidor do parceiro... com isso o parceiro tem reclamado que da falta de alugmas vendas sendo que aqui para mim a venda esta marcada como 'enviada', como resolver esta situacao? segundo a documentacao do parceiro seriam esses codigos 200 e 208 mesmo para identificar que a venda foi transmitida com sucesso
function Executa_Post(pIdHTTP_ST: TIdHTTP; pURL, pJSON : String) : Integer;
var
JsonStreamEnvio : TStringStream;
JsonStreamRetorno : TStringStream;
vStr : TStringList;
URL : String;
begin
Result := 0;
TRY
try
JsonStreamEnvio := TStringStream.Create(pJSON , TEncoding.UTF8);
JsonStreamRetorno := TStringStream.Create('');
pIdHTTP_ST.Post( pURL , JsonStreamEnvio , JsonStreamRetorno);
Result := pIdHTTP_ST.ResponseCode;
except
Result := pIdHTTP_ST.ResponseCode;
end;
FINALLY
FreeAndNil(JsonStreamEnvio);
FreeAndNil(JsonStreamRetorno);
END;
end;
////
vResposta := Executa_Post(parametros da funcao...);
if (vRespsta = 200) or (vResposta = 208) then
// marca a venda como transmitida
function Executa_Post(pIdHTTP_ST: TIdHTTP; pURL, pJSON : String) : Integer;
var
JsonStreamEnvio : TStringStream;
JsonStreamRetorno : TStringStream;
vStr : TStringList;
URL : String;
begin
Result := 0;
TRY
try
JsonStreamEnvio := TStringStream.Create(pJSON , TEncoding.UTF8);
JsonStreamRetorno := TStringStream.Create('');
pIdHTTP_ST.Post( pURL , JsonStreamEnvio , JsonStreamRetorno);
Result := pIdHTTP_ST.ResponseCode;
except
Result := pIdHTTP_ST.ResponseCode;
end;
FINALLY
FreeAndNil(JsonStreamEnvio);
FreeAndNil(JsonStreamRetorno);
END;
end;
////
vResposta := Executa_Post(parametros da funcao...);
if (vRespsta = 200) or (vResposta = 208) then
// marca a venda como transmitida
Najasoftware
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)