Информация об изменениях

Сообщение Re[6]: Сделать Post строки, часть которой в зашифрованном ви от 22.06.2021 9:20

Изменено 22.06.2021 13:23 Passerby

Re[6]: Сделать Post строки, часть которой в зашифрованном ви
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Поскольку неанглийского текста у тебя нет, разницы быть не должно.
А она есть.
static string secret = "f778dc7e-46c1-4f09-87e3-548e0beb9cb6", key = "60cb25cb2f6e210006b78289";
    static string passphrase = "abpbrfabpbrf";
public async Task<string> OpenOrderExample()
    {
      string url = "https://openapi-sandbox.kucoin.com/api/v1/orders";
      var nonce = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
      var endpoint = "/api/v1/orders";
      var clientOid = Guid.NewGuid();
      var body = "{\"clientOid\":\"" + clientOid.ToString() + "\",\"price\":\"34000\",\"side\":\"buy\",\"size\":\"0.001\",\"symbol\":\"CRO-USDT\",\"timeInForce\":\"GTC\",\"type\":\"limit\"}";
      var strForSign = nonce + "POST" + endpoint + body;
      var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(secret));
      var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(strForSign)));
      HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, new Uri(url));
      request.Headers.Add("KC-API-KEY", key);
      request.Headers.Add("KC-API-SIGN", signature);
      request.Headers.Add("KC-API-TIMESTAMP", nonce);
      request.Headers.Add("KC-API-PASSPHRASE", passphrase);
      //request.Content = new StringContent(body, Encoding.UTF8, "application/json");

      request.Content = new FormUrlEncodedContent(new List<KeyValuePair<string, string>>{
               new KeyValuePair<string, string>( "clientOid", clientOid.ToString() ),
      new KeyValuePair<string, string> ("price","34000" ),
      new KeyValuePair<string, string> (  "side","buy" ),
              new KeyValuePair<string, string> ("size","0.001" ),
                new KeyValuePair<string, string> ( "symbol","CRO-USDT" ),
             new KeyValuePair<string, string> ( "timeInForce","GTC" ),
             new KeyValuePair<string, string> ( "type","limit")
             });
      HttpResponseMessage response = await httpClient.SendAsync(request).ConfigureAwait(false);
      string message = await response.Content.ReadAsStringAsync();
      return message;
    }

В одном случае {"code":"900001","msg":"Symbol [CRO-USDT] Not Exists"}, т.к. пока не хочу выставлять ордера существующих пар, т.е. нормальный ответ, в другом неверный "KC-API-SIGN".
Ключи и адрес песочницы, т.е. там позволяется поиграть и деньги не реальные. Но все равно хотелось бы еще кое-что проверить, поэтому просьба ордера реальных пар не выставлять, чтобы эти игровые деньги не исчезли.
Re[6]: Сделать Post строки, часть которой в зашифрованном ви
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Поскольку неанглийского текста у тебя нет, разницы быть не должно.
А она есть.
public async Task<string> OpenOrderExample()
    {
      string url = "https://openapi-sandbox.kucoin.com/api/v1/orders";
      var nonce = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
      var endpoint = "/api/v1/orders";
      var clientOid = Guid.NewGuid();
      var body = "{\"clientOid\":\"" + clientOid.ToString() + "\",\"price\":\"34000\",\"side\":\"buy\",\"size\":\"0.001\",\"symbol\":\"CRO-USDT\",\"timeInForce\":\"GTC\",\"type\":\"limit\"}";
      var strForSign = nonce + "POST" + endpoint + body;
      var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(secret));
      var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(strForSign)));
      HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, new Uri(url));
      request.Headers.Add("KC-API-KEY", key);
      request.Headers.Add("KC-API-SIGN", signature);
      request.Headers.Add("KC-API-TIMESTAMP", nonce);
      request.Headers.Add("KC-API-PASSPHRASE", passphrase);
      //request.Content = new StringContent(body, Encoding.UTF8, "application/json");

      request.Content = new FormUrlEncodedContent(new List<KeyValuePair<string, string>>{
               new KeyValuePair<string, string>( "clientOid", clientOid.ToString() ),
      new KeyValuePair<string, string> ("price","34000" ),
      new KeyValuePair<string, string> (  "side","buy" ),
              new KeyValuePair<string, string> ("size","0.001" ),
                new KeyValuePair<string, string> ( "symbol","CRO-USDT" ),
             new KeyValuePair<string, string> ( "timeInForce","GTC" ),
             new KeyValuePair<string, string> ( "type","limit")
             });
      HttpResponseMessage response = await httpClient.SendAsync(request).ConfigureAwait(false);
      string message = await response.Content.ReadAsStringAsync();
      return message;
    }

В одном случае {"code":"900001","msg":"Symbol [CRO-USDT] Not Exists"}, т.к. пока не хочу выставлять ордера существующих пар, т.е. нормальный ответ, в другом неверный "KC-API-SIGN".
Ключи и адрес песочницы, т.е. там позволяется поиграть и деньги не реальные. Но все равно хотелось бы еще кое-что проверить, поэтому просьба ордера реальных пар не выставлять, чтобы эти игровые деньги не исчезли.
UPD
Ключи удалил