2014-01-15 47 views
0

我想提出一個XMLHttpRequest到BTC - E. API文檔可以在這裏看到:https://btc-e.com/api/documentation的XMLHttpRequest,SHA512和BTC - 電子

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); 

看來,散列做得正確,或者至少得到一個正確的期待弦回來。服務器響應:{「success」:0,「error」:「invalid nonce parameter; on key:0,you sent:1389814528941」}

已經掙扎了好幾個小時,無法弄清楚什麼是錯的。

+0

該api是否支持CORS?你的網絡檢查員對這些請求說些什麼,他們看起來像你期望的一樣嗎?爲什麼您的POST數據之前有問號? – Bergi

+0

我使用另一個站點(Bitstamp)以類似的方式完成了它,並且一切都很完美。問號是因爲「按照HMAC-SHA512方法由密鑰簽名的Sign-POST數據(?param = val&param1 = val1);」 – user2718351

回答