Что нового

Работа с API биржи hitbtc.com

Статус
Закрыто для дальнейших ответов.

zigzagrus79

Новичок
Сообщения
31
Репутация
0
Версия AutoIt: 3.3

Описание:
Приветствую уважаемые! Возникла такая задача: нужно реализовать несколько простых функций посредством API на одной бирже криптовалюты, которые выполняются руками, такими как создание ордера и отмена ордера, получение цены. Хотелось бы реализовать эту задумку на любимом autoit.
Не ожидаю готовый результат аля "сделайте все за меня". Надеюсь на помощь тех, кто уже занимался таким вопросом как реализовать взаимодействие используя API. Думаю на этой бирже сам API не сильно разительно отличается от API на других сайтах. Вот описание самого API https://hitbtc.com/api
Буду благодарен за помощь.
Примечания:
Получается получить общую информацию, время, списки пар и тп.
Конкретно проблема в следующем- не получается авторизоваться.
вот пример авторизации:
Код:
{
    "apikey": "e418f5b4a15608b78185540ef583b9fc",
    "signature": "FN6/9dnMfLh3wZj+cAFr82HcSvmwuniMQqUlRxSQ9WxRqFpYrjY2xlvDzLC5+qSZAHts8R7KR7HbjiI3SzVxHg==",
    "message":{
        "nonce": 12,
        "payload": {
            "Login": {}
        }
    }
}
Я так понимаю это Json формат и его нужно методом post отправить на сервер. Никак не оправляется
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Что бы авторизироваться нужно добавлять заголовок X-Signature, я так понимаю API key and Secret key у вас уже есть?
Код:
    private function _signature($uri, $postData)
    {
        return strtolower(hash_hmac('sha512', $uri . $postData, $this->_secret));
    }
Вот как получается сигнатура.

lower-case hex representation of hmac-sha512 of concatenated uri and postData

Функция HMAC для sha1:
Код:
Func hash_hmac($key, $message)
	Local $blocksize = 64
	Local $a_opad[$blocksize], $a_ipad[$blocksize]
	Local Const $oconst = 0x5C, $iconst = 0x36
	Local $opad = Binary(''), $ipad = Binary('')
	$key = Binary($key)
	If BinaryLen($key) > $blocksize Then $key = _Crypt_HashData($key, $CALG_SHA1)
	For $i = 1 To BinaryLen($key)
		$a_ipad[$i - 1] = Number(BinaryMid($key, $i, 1))
		$a_opad[$i - 1] = Number(BinaryMid($key, $i, 1))
	Next
	For $i = 0 To $blocksize - 1
		$a_opad[$i] = BitXOR($a_opad[$i], $oconst)
		$a_ipad[$i] = BitXOR($a_ipad[$i], $iconst)
	Next
	For $i = 0 To $blocksize - 1
		$ipad &= Binary('0x' & Hex($a_ipad[$i], 2))
		$opad &= Binary('0x' & Hex($a_opad[$i], 2))
	Next
	Return _Crypt_HashData($opad & _Crypt_HashData($ipad & Binary($message), $CALG_SHA1), $CALG_SHA1)
EndFunc

Тебе вместо sha1 нужно использовать $CALG_SHA_512 = 0x0000800e


Добавлено:
Сообщение автоматически объединено:

Это для RESTFUL API
 
Автор
Z

zigzagrus79

Новичок
Сообщения
31
Репутация
0
Да, API key and Secret key имеются. Сейчас буду разбираться с вашим кодом :stars:
Пс: наверное стоит удалить предложение в первом посте про "не жду готовый результат" тк в части post get сигнатуры и методы знания практически нулевые :rofl:
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Самое сложное это подписать запрос, все остальное проще.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
zigzagrus79

По поводу репутации. Во-первых, изменять репутацию за модерацию, это моветон. Если не нравятся правила нашего форума, то идите на другой форум. Во-вторых,

Прочитал еще раз пункт Б) правил. Ни один из пунктов 1-7 правил создания новой темы не нарушено.

Правила обязательного оформления тем в разделе "Стол заказов", читаем п.1. А в-третьих, вы получаете постоянный бан.

Тема закрыта.
 
Статус
Закрыто для дальнейших ответов.
Верх