Что нового

[Криптография] Авторизация на бирже с использованием API

trudmoy

Новичок
Сообщения
15
Репутация
1
Версия AutoIt: v3.3.14.2

Описание: Добрый день. Совсем не силен в API. Прошу помощи в вопросе создания "подписи" (это кодированное сообщение HMAC-SHA256) для аутентификации при обращении к "частному" API. Описание на сайте следующее:
PRIVATE FUNCTIONSACCOUNT BALANCE
This API call is cached for 10 seconds. This call will be executed on the account (Sub or Main), to which the used API key is bound to.
Request
POST https://www.bitstamp.net/api/balance/
POST https://www.bitstamp.net/api/v2/balance/API v2
Returns all the balances.
POST https://www.bitstamp.net/api/v2/balance/{currency_pair}/API v2
Returns the values relevant to the specified currency_pair parameter. Supported values for currency_pair: btcusd, btceur, eurusd, xrpusd, xrpeur, xrpbtc, ltcusd, ltceur, ltcbtc, ethusd, etheur, ethbtc
Request parameters
key API key.
signature Signature.
nonce Nonce.

Пример короткого о том, как сгенерировать подпись, можно увидеть здесь:

Код:
Python
import hmac
import hashlib

message = nonce + customer_id + api_key
signature = hmac.new(
    API_SECRET,
    msg=message,
    digestmod=hashlib.sha256
).hexdigest().upper()

customer ID, API key, secret key - есть. Публичные данные получаю без проблем:
Код:
#include <Crypt.au3> 
 
Global $g_sBitstamURL = "https://www.bitstamp.net/api/v2/"
Global Const $g_sAPIKey = "5RvPXXXXXXXXXXXXXXXXXXXXXX087"  
Global Const $g_sAPISecret = "LR4XXXXXXXXXXXXXXXXXXXXXXXWr"  
Global Const $g_sID = "dsXXXXX5"

_TestAPI()

Func _TestAPI()
    ;Query Public
    Local $sResult = BitstamQueryPublic("ticker/btcusd/") ;Server ticker 
    ConsoleWrite("Ticker: " & $sResult & @CRLF & @CRLF) 
EndFunc   ;==>_TestAPI

Func BitstamQueryPublic($sMethod, $sParameters = "")
    Local $sURL = StringFormat($sMethod)
    Local $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    $oHTTP.Open("POST", $g_sBitstamURL & $sURL, False)
    $oHTTP.Send(Binary($sParameters))
    Local $sReceived = $oHTTP.ResponseText
    Return $sReceived
EndFunc   ;==>BitstamQueryPublic


Дальше я совсем новичок. Помогите, пожалуйста.

Примечания:
 
Автор
trudmoy

trudmoy

Новичок
Сообщения
15
Репутация
1
Вопрос решен. Кому интересно - пишите в личку.
 
Верх