【问题标题】:KuCoin Nonce CalculationKuCoin 随机数计算
【发布时间】:2019-03-18 10:37:54
【问题描述】:

我很难计算连接到 KuCoin 交易所的随机数。我目前正在使用以下代码来计算 C# 中的 nonce:

long nonce = DateTime.UtcNow.Ticks;

我得到的错误如下:

"{\"code\":\"UNAUTH\",\"msg\":\"Invalid nonce\",\"success\":false,\"timestamp\":1539429475443}"

【问题讨论】:

    标签: nonce


    【解决方案1】:

    Kucoin 文档没有明确声明它需要 unix 时间的值。 .net 中的 DateTime.Ticks 是基于第 1 年的 1 月 1 日,而 unix 纪元是 1970 年 1 月 1 日。

    您可以使用此代码获取您需要的值:

    var CurrentTimestamp = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc)).TotalMilliseconds

    【讨论】:

      【解决方案2】:

      根据https://kucoinapidocs.docs.apiary.io/#introduction/authentication,Kucoin API 希望 nonce 是一个以毫秒为单位的时间戳。

      但是,https://docs.microsoft.com/en-us/dotnet/api/system.datetime.ticks?view=netframework-4.7.2 表示DateTime.UtcNow.Ticks 表示以“滴答”为单位的时间,其中滴答是十分之一微秒。

      这意味着一毫秒有 10,000 个滴答,因此要将 .Ticks 结果转换为 Kucoin 想要的毫秒值,您必须将其除以 10,000:

      long nonce = DateTime.UtcNow.Ticks / 10000;
      

      【讨论】:

      • 不幸的是,提供的答案仍然给出相同的错误消息。
      • 啊,我没有注意到DateTime.UtcNow 的开始时间(“纪元”)也不同。我很高兴其他回答者注意到了。
      猜你喜欢
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 2016-07-05
      相关资源
      最近更新 更多