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 数字签名