Не могу осилить BTC-e API, решил обратиться к гуру и решить за вознаграждение.
Пишет, что неправильно подписан пакет.
Uses
...
httpsend,
synacode,
ssl_openssl,
cHash in 'cHash.pas'; // модуль рабочий, отлично работает на другом сайте.
procedure getinfo;
var key, secret:string;
sign:string;
HTTP:THttpSend;
nonce:string;
Data: TStringStream;
begin
key:='LQVTYP8X-6TXPEKWU-Y1007P1B-UUKVOK50-89SG8R9T';
secret:='6b3d191dca5516eef24e4968d033b14e383692a449744386a55a876c97efffb9';
nonce:=inttostr(DateTimeToUnix(now));
Data := TStringStream.Create('');
Data.WriteString('method=getInfo&');
Data.WriteString('nonce='+nonce);
Data.Position:=0;
sign:=SHA512DigestToHex(CalcHMAC_SHA512(secret,'method=getInfo&nonce='+nonce));
HTTP:=THttpSend.Create;
HTTP.Headers.Add('Content-type: application/x-www-form-urlencoded');
HTTP.Headers.Add('Key: '+key);
HTTP.Headers.Add('Sign: '+sign);
HTTP.Document.LoadFromStream(data);
if not HTTP.HTTPMethod('POST','
then
writeln('error')
else begin
writeln(PChar(HTTP.Document.Memory));
end;
Data.Free;
Http.free;
end;
В результате получаю {"success":0,"error":"invalid sign"}
Модуль
API BTC-e
Приложение должно компилироваться под Linux fpc.