如何在 SendMoney coinbase API 中发布数据

Posted

技术标签:

【中文标题】如何在 SendMoney coinbase API 中发布数据【英文标题】:How To Post Data in SendMoney coinbase API 【发布时间】:2017-03-23 10:43:10 【问题描述】:

我正在尝试使用 sendmoney API 使用下面的代码发送一些比特币。但我收到下面列出的错误 -

错误:

"errors":["id":"authentication_error","message":"无效签名"]

我正在使用的代码:

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;

【问题讨论】:

【参考方案1】:

您需要将您的发布请求正文添加到请求的内容中。删除所有请求的参数并添加以下内容。

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

【讨论】:

以上是关于如何在 SendMoney coinbase API 中发布数据的主要内容,如果未能解决你的问题,请参考以下文章

美国的火币Coinbase如何构建区块链基础设施

如何获取 Coinbase CryptoCurrency 硬币的列表

我如何与 Coinbase 的 API 交互?为啥总是失败?

Coinbase Pro 费用和总额

如何使用 coinbase api 和 php 获取具有新地址的字符串

Coinbase API:如何获取所有受支持硬币的现货价格