Показать сообщение отдельно
  #1  
Старый 08.10.2019, 12:55
kalan2783 kalan2783 вне форума
Прохожий
 
Регистрация: 07.10.2019
Сообщения: 1
Версия Delphi: Delphi 10.1
Репутация: 10
По умолчанию При создании тестового ордера на binance выдает 400 bad request

Доброго времени суток. При создании тестового ордера на binance используя delphi возврощается ошибка 400 bad request.
Где грабли? Подскажите пожалуйста.

Код:
procedure TForm1.Order();
var
  url, sign, queryString, nonce: string;
  ST: SystemTime;
  DT: TDateTime;
  uTime: int64;
  sHour, sMin, sSec, sMili: Word;

  stream, s_url: string;
  Post: TStringList;
begin
  api_key := 'OPEN_KEY';
  api_secret := 'SECRET_KEY';

  GetSystemTime(ST);
  DT := EncodeDate(ST.wYear, ST.wMonth, ST.wDay) +
        EncodeTime(ST.wHour, ST.wMinute, ST.wSecond, ST.wMilliseconds);
  uTime := DateUtils.MilliSecondsBetween(DT, UnixDateDelta);
  nonce:=inttostr(uTime);

  url :='https://api.binance.com/api/v3/order/test';
  queryString := 'symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=0.12&price=0.008729&recvWindow=5000&timestamp='+nonce;
  sign := THashSHA2.GetHMAC(queryString, api_secret, SHA256);

  IdHTTP10 := TidHTTP.Create(nil);
  IdHTTP10.HandleRedirects := True;
  IdHTTP10.Request.CustomHeaders.Add('X-MBX-APIKEY:'+api_key);

  Post:=TStringList.Create;
  Post.Add('quantity=0.12&');
  Post.Add('price=0.008729&');
  Post.Add('recvWindow=5000&');
  Post.Add('timestamp='+nonce+'&');
  Post.Add('signature='+sign);

  s_url := url + '?symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC';
  try
    stream:=IdHTTP10.POST(s_url, Post);
    Memo3.Lines.Add(stream);
  except
    on E: Exception do
      Memo1.Lines.Add(TimeToStr(time)+' <---> [Order] error: '+E.Message);
  end;
  IdHTTP10.Free;
  Post.Free;
end;
Ответить с цитированием