Я пытался преобразовать этот пример PHP для аутентификации API веб-сайта CCEX в c # в течение нескольких часов, и я не могу добиться успеха …
Являются ли HMAC
а также NONCE
правильно ли заменить функции PHP?
И как пользоваться HttpClient()
копировать локоны? (Я попытался опубликовать и получить, и оба дали мне неправильный APIKEY, поэтому мой код был явно где-то не так)
Не могли бы вы помочь мне с этим?
$apikey='xxxxxxx';
$apisecret='xxxxxxx';
$nonce=time();
$uri='https://c-cex.com/t/api.html?a=getbalance¤cy=BTC&apikey='.$apikey.'&nonce='.$nonce;
$sign=hash_hmac('sha512',$uri,$apisecret);
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
$execResult = curl_exec($ch);
Я использую HttpClient()
и вот функция, которую я использую для HMAC512
private string encode(string str)
{
Encoding encoding = Encoding.UTF8;
byte[] keyByte = encoding.GetBytes("XXXXXXXXXXXXXXXXXXXX");
using (HMACSHA512 hmac = new HMACSHA512(keyByte))
{
byte[] buff = hmac.ComputeHash(encoding.GetBytes(str));
string sbinary = "";
for (int i = 0; i < buff.Length; i++)
{
sbinary += buff[i].ToString("X2");
}
return sbinary.ToLower();
}
}
И вот что я использую для него nonce
:
int nonce = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
Задача ещё не решена.
Других решений пока нет …