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
Najasoftware

Najasoftware

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar