2016-11-09 44 views
4

我正嘗試使用sendmoney API使用以下代碼發送一些比特幣。但我在下面得到中列出的錯誤 -如何在SendMoney coinbase中發佈數據API

錯誤:

{"errors":[{"id":"authentication_error","message":"invalid signature"}]}

代碼我使用:

string message = time_epoch.data.epoch.ToString() + "POST" + "/v2/accounts/xxxx/transactions"+ 
     "{type:send,to:xxxx,amount:0.0002,currency:BTC}"; 

string signature = HashEncode(HashHMAC(StringEncode("xxxxxx"), StringEncode(message))); 

var _client = new RestClient("https://api.coinbase.com/v2/"); 

var request = new RestRequest("accounts/xxxxxx/transactions", Method.POST); 

request.AddHeader("CB-VERSION", "2016-10-03"); 
request.AddHeader("Content-Type", "application/json"); 
request.AddHeader("Charset", "utf-8"); 
request.AddHeader("CB-ACCESS-KEY", "xxxxx"); 
request.AddHeader("CB-ACCESS-SIGN", signature); 
request.AddHeader("CB-ACCESS-TIMESTAMP", time_epoch.data.epoch.ToString()); 
request.AddParameter("type", "send"); 
request.AddParameter("to", "xxxx"); 
request.AddParameter("amount", "0.0002"); 
request.AddParameter("currency", "BTC"); 
request.AddParameter("idem", "9316dd16-6c09"); 

request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json;charset=utf-8"; }; 
var response = _client.Execute(request); 
return _client.Execute(request).Content; 

回答

0

您需要將POST請求的身體添加到請求的內容。刪除所有請求的參數並添加以下內容。

request.Content = new StringContent("{\"type\":\"send\",\"to\":\"xxxx\",\"amount\":0.0002,\"currency\":\"BTC\"}", Encoding.UTF8, "application/json");