procedure
TForm1
.
Button2Click(Sender: TObject);
const
PublicKey=
'***'
;
SecretKey=
'***'
;
var
sign,queryString,requestBody,strOrder,url:
String
;
strQuantity,strPrice,strLocalDT:
String
;
PostData: TStringStream;
ST: SystemTime;
DT: TDateTime;
idHTTP_Order: TidHTTP;
ioSSL: TIdSSLIOHandlerSocketOpenSSL;
begin
try
try
idHTTP_Order:=TidHTTP
.
Create(Self);
idHTTP_Order
.
HandleRedirects:=
True
;
idHTTP_Order
.
HTTPOptions:=[hoKeepOrigProtocol,hoForceEncodeParams,
hoNoProtocolErrorException,hoWantProtocolErrorContent];
ioSSL:=TIdSSLIOHandlerSocketOpenSSL
.
Create(Self);
idHTTP_Order
.
IOHandler:=ioSSL;
idHTTP_Order
.
Request
.
CustomHeaders
.
Add(
'X-MBX-APIKEY:'
+PublicKey);
strQuantity:=
'5.00000'
;
strPrice:=
'2.18380'
;
GetSystemTime(ST);
DT:=EncodeDate(ST
.
wYear,ST
.
wMonth,ST
.
wDay)+
EncodeTime(ST
.
wHour,ST
.
wMinute,ST
.
wSecond,ST
.
wMilliseconds);
strLocalDT:=IntToStr(MilliSecondsBetween(DT,UnixDateDelta));
queryString:=
'symbol=ADAUSDT&side=BUY&type=LIMIT&timeInForce=GTC'
;
requestBody:=
'quantity='
+strQuantity+
'&price='
+strPrice+
'&recvWindow=5000×tamp='
+strLocalDT;
sign:=THashSHA2
.
GetHMAC(RawByteString(queryString+requestBody),SecretKey,SHA256);
PostData:=TStringStream
.
Create(requestBody+
'&signature='
+sign);
strOrder:=idHTTP_Order
.
Post(url,PostData);
finally
PostData
.
DisposeOf;
ioSSL
.
DisposeOf;
idHTTP_Order
.
DisposeOf;
end
;
except
on
E: Exception
do
ShowMessage(
'Error Message: '
+E
.
Message);
end
;
memo2
.
Lines
.
Add(strOrder);
end
;