@Karkes

Как исправить ошибку в api запросе?

Написал запрос на открытие маркет ордера для сайта Huobi по документации.Запрос представлен ниже.
var client = new RestClient("https://api.huobi.pro");
string Method = "POST";
string endpoint = "/v1/order/orders/place";
string base_uri = "api.huobi.pro";
var request = new RestRequest("/v1/order/orders/place");
request.AddHeader("Content-Type","application/json");
request.AddQueryParameter("AccessKeyId", apikey);
request.AddQueryParameter("account-id", "12105426");
request.AddQueryParameter("amount", "10");
request.AddQueryParameter("symbol", "expusdt");
request.AddQueryParameter("type", "buy-market");
request.AddQueryParameter("SignatureMethod", "HmacSHA256");
request.AddQueryParameter("SignatureVersion", "2");
request.AddQueryParameter("Timestamp", UTCtime());
request.AddQueryParameter("Signature", CreateSignature(request.Parameters, secret,Method,endpoint,base_uri));
var response = client.Post(request);
string content = response.Content; 
Console.WriteLine(content);

Вот код создания сигнатуры.
public static string CreateSignature(List<Parameter> parameters, string secret,string Method,string endpoint,string base_uri)
            {
                Encoding ascii = Encoding.ASCII;
                string pre_signed_text = Method + "\n" + base_uri + "\n" + endpoint + "\n"  + string.Join("&", parameters).Replace(":","%3A");
                Console.WriteLine(pre_signed_text);
                HMACSHA256 hmac = new HMACSHA256(ascii.GetBytes(secret));
                String calc_sig = Convert.ToBase64String(hmac.ComputeHash(ascii.GetBytes(pre_signed_text)));
                return calc_sig;
            }

При запуске запроса на покупку выдает ошибку
{"status":"error","err-code":"api-signature-not-valid","err-msg":"Signature not valid: Verification failure [校验失败]","data":null}

Что не так понять не могу.
  • Вопрос задан
  • 336 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы