|
#1
|
|||
|
|||
API биржа bitcoin
Доброго времени суток , помогите пожалуйста не могу найти решение в интернете, для работы с биржей чтобы создавать и отменять ордера каждый запрос должен пройти аутентификацию, но как правильно ее реализовать я не знаю. Прошу Вас помочь.
Аутентификация Каждый запрос Trade API должен пройти аутентификацию. Аутентификация происходит способом отправки следующих HTTP-заголовков: Key - API-ключ, пример: FAF816D16FFDFBD1D46EEF5D5B10D8A2 Sign - цифровая подпись, POST-параметры (?param0=val0 & ...& nonce=1) подписанные секретным ключом с помощью HMAC-SHA512 Параметр nonce (минимум 1, максимум 2147483646) при каждом новом запросе должен быть больше значения из предыдущего запроса. Для обнуления nonce необходимо создать новый ключ. Trade API Trade API необходим для осуществления создания и отмены ордеров, запроса актуальных балансов, а так же получения информации, для которой необходим доступ к личным данным аккаунта. Для использования Trade API необходимо создать ключ в соответствующем разделе. Секрет ключа доступен для просмотра только в течение часа после создания, поэтому рекомендуем Вам сохранить его сразу после генерации ключа. Ключи и их секреты используются для аутентификации пользователя. Адрес для отправки запросов Trade API: yobit.net/tapi/ Для каждого запроса нужна аутентификация. Все ответы сервер отдаёт в формате JSON. Последний раз редактировалось Admin, 22.03.2021 в 19:21. |
#2
|
|||
|
|||
По, более чем скромному, описанию самой биржи как то так:
Код:
KEY:='xxxxxxxxxxxxxx'; SEKRET:='xxxxxxxxxxxxxx'; .......... Nonce:=DateTimeToUnix(now); .......... WWW:='https://yobit.net/tapi/'; Par:=TStringList.Create; Par.Add('method=getInfo'); .......... param:=Par[0]; if Par.Count>1 then for i:=1 to Par.Count-1 do param:=param+'&'+Par[i]; Par.add('nonce='+Nonce); param:=param+'&nonce='+Nonce; .......... sign:=SHA512DigestToHex(CalcHMAC_SHA512(SEKRET,param)); .......... IdSSL1:=TIdSSLIOHandlerSocketOpenSSL.Create(); .......... IdHTTP1:=TIdHTTP.Create(); IdHTTP1.IOHandler:=IdSSL1; IdHTTP1.Request.CustomHeaders.AddValue('Key', KEY); IdHTTP1.Request.CustomHeaders.AddValue('Sign', sign); .......... Lin.Text:=IdHTTP1.Post(WWW,par); Что то как то не получается аутентифицироваться. Максимум что удалось выжать - это {"success":0,"error":"invalid sign"}. Последний раз редактировалось Admin, 28.04.2018 в 21:39. |