Crypto.com 提供了一个API,据说你可以访问他们的交易平台。但是,就 C# 示例而言,他们的文档极差且不准确。我无法使用 C# 验证我的 REST 调用。
对于所有private
(与帐户相关的)调用,您需要通过向有效负载 JSON添加参数来对请求进行签名。sig
计算private/get-account-summarysig
方法参数的代码的简化版本如下所示(.net50):
private static string GetSignature()
{
string sigPayload = "private/get-account-summary" + 1 + API_KEY + "currencyCRO" + DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
var hash = new HMACSHA256(Encoding.UTF8.GetBytes(API_SECRET));
var computedHash = hash.ComputeHash(Encoding.UTF8.GetBytes(sigPayload));
return Convert.ToHexString(computedHash);
}
,而使用此签名的请求如下所示:
POST https://api.crypto.com/v2/private/get-account-summary
{
"id": "1",
"method": "private/get-account-summary",
"api_key": "[api_key]",
"params": {
"currency": "CRO"
},
"nonce": "1615048530368",
"sig": "1A7C7183CAF2E71F7F7DAB6A5C7F74319E692F2638710292BDB4FDFAC6C864D6"
}
据我所知,我已经正确地应用了他们的算法来创建签名,并且还使用了正确的参数来调用有问题的方法(https://exchange-docs.crypto.com/spot/index.html#private-获取帐户摘要)。但是,我得到的回复告诉我我做错了:
{
"id": 1,
"method": "private/get-account-summary",
"code": 10002,
"message": "UNAUTHORIZED"
}
我开始怀疑 API 是否适用于private
方法。他们的支持很糟糕,让我再次阅读文档。我将不胜感激任何语言的任何帮助。如果我至少听到其他人用另一种语言做这件事,我可以用他们的例子来找出我做错了什么。