【问题标题】:C++ Signing message on kucoin APIkucoin API 上的 C++ 签名消息
【发布时间】:2021-06-16 07:25:44
【问题描述】:

我正在用 C++ 构建一个多交换机器人,但遇到了一个小问题。事实证明,KuCoin 交换至少可以说令人沮丧,其中一个标头是签名标头,您可以在其中使用 HMAC sha256 对字符串进行编码,然后使用 base64 对其进行编码。但是我不关心编码,我可以做所有这些。让我难过的是 KuCoins API 所期望的字符串,我已经搜索了他们的文档 100 遍,但我仍然无法正确理解,这里是说明

对于KC-API-KEY的头部:

使用 API-Secret 使用 sha256 HMAC 加密 prehash 字符串 {timestamp+method+endpoint+body}。请求体为 JSON 字符串,需要与 API 传递的参数一致。 之后,再次使用base64-encode对步骤1中的结果进行加密。

我已尝试以各种可能的方式制作此字符串,但文档没有提供关于好的字符串应该是什么样子的示例,以下是我在编码之前制作的字符串不起作用。

示例 1:1616096476134POST/api/v1/orders?clientOid=55be5&side=BUY&symbol=BTC-USDT&type=MARKET&funds=0.005000

示例 2:1616099932367POST/api/v1/orders{"clientOid":"55be5","side":"BUY","symbol":"BTC-USDT","type":"MARKET","funds ":"0"}

如您所见,在第二个示例中,我尝试将正文设为具有所有正确参数的 JSON 字符串,但仍然返回错误的签名错误。从字面上看,我只需要知道字符串应该是什么样子,这样我就可以正确地制作它。谢谢。

【问题讨论】:

    标签: c++ c++17 bots cryptocurrency kucoin


    【解决方案1】:

    我假设您的代码适用于不带参数的私人请求(例如获取余额)。

    对于 POST 请求,我也有些吃力,但经过几次尝试后,我还是成功了。您需要将参数转储为不带空格的 JSON 字符串,就像在示例 2 中一样。

    从那以后,你解决了吗?我在my application 上有一个代码,如果您有兴趣可以使用。

    另外,不要忘记在 curl 请求的标头中添加:

    Content-Type: application/json
    

    【讨论】:

      【解决方案2】:

      通过 Kucoin 支持和 pythone 示例解决。 “body”也必须包含在 POST 请求中。 是:

      reply = netman->post(req, "");
      

      成为:

      tradereply = trademan->post(req, data);
      

      【讨论】:

        猜你喜欢
        • 2022-10-24
        • 2018-07-05
        • 1970-01-01
        • 1970-01-01
        • 2011-11-15
        • 2019-01-18
        • 2019-01-13
        • 2011-08-04
        • 1970-01-01
        相关资源
        最近更新 更多