kucoin API 上的 C++ 签名消息

Posted

技术标签:

【中文标题】kucoin API 上的 C++ 签名消息【英文标题】:C++ Signing message on kucoin API 【发布时间】: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 字符串,但仍然返回错误的签名错误。从字面上看,我只需要知道字符串应该是什么样子,这样我就可以正确地制作它。谢谢。

【问题讨论】:

【参考方案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);

【讨论】:

以上是关于kucoin API 上的 C++ 签名消息的主要内容,如果未能解决你的问题,请参考以下文章

R Binance API HMAC SHA256 签名消息

我们如何在 C++ 和 windows API 中验证 openssl 数字签名

Python 参数类型与 C++ 签名不匹配

验证openssl c ++中的签名,该签名由JAVA DSA签名?

BSV 上的环签名

BSV 上的环签名