2014-01-15 3 views
0

Я сделав XMLHttpRequest для BTC - документации API Е. можно увидеть здесь: https://btc-e.com/api/documentationXMLHttpRequest, SHA512 и BTC - E

var apiKey; 
var apiSec; 
var response; 
var nonce; 
var sign; 

function signMessage() { 
    nonce = (new Date()).getTime().toString(); 
    var hash = CryptoJS.HmacSHA512("?method=getInfo&nonce=" + nonce, apiSec); 
    sign = hash.toString(CryptoJS.enc.Hex); 
} 

function getPrice() { 
var req = new XMLHttpRequest(); 
req.open("POST","https://btc-e.com/tapi", false); 
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
req.setRequestHeader("Key", apiKey); 
req.setRequestHeader("Sign", sign); 
req.send("method=getInfo&nonce=" + nonce); 
req.onload = function() { 
    response = JSON.parse(req.responseText); 
}; 
} 
signMessage(); 
getPrice(); 
console.log(responce); 

Кажется, что хеширование сделано правильно или, по крайней мере, получать правильное глядя строка назад. Ответ сервера: {«успех»: 0, «ошибка»: «недействительный параметр nonce; по ключу: 0, вы отправили: 1389814528941»}

Боролись часами и не могли понять, что не так.

+0

Поддерживает ли это ави поддержку CORS? Что скажет ваш сетевой инспектор о запросах, они выглядят так, как вы ожидаете? Почему вашим данным POST предшествует знак вопроса? – Bergi

+0

Я сделал это аналогичным образом с использованием другого сайта (Bitstamp), и все сработало отлично. Вопросительный знак - это потому, что «Sign - POST data (? Param = val & param1 = val1), подписанный секретным ключом в соответствии с методом HMAC-SHA512»; – user2718351

ответ

Смежные вопросы