我正在用C++构建一个多交换机器人,我遇到了一个小问题。至少可以说,KuCoin交换已经被证明是令人沮丧的,其中一个报头是签名报头,你用HMAC sha256对字符串进行编码,然后用base64对其进行编码。然而,我并不关心编码,我可以做到所有这些。让我困惑的是KuCoins API所期望的字符串,我已经搜索了他们的文档100次,但我仍然无法正确,以下是说明
对于KC-API-KEY:的头部
使用API-Secret使用sha256 HMAC对预散列字符串{timestamp+method+endpoint+body}进行加密。请求主体是一个JSON字符串,需要与API传递的参数相同。之后,再次使用base64编码对步骤1中的结果进行加密。
我已经尝试过用各种可能的方式来制作这个字符串,文档中没有提供一个好的字符串应该是什么样子的例子,以下是我在编码之前制作的不起作用的字符串。
示例1:1616096476134POST/api/v1/订单?clientOid=55be5&side=买入&symbol=BTC-USDT&type=市场;资金=0.005000
示例2:1616099932367POST/api/v1/orders{"clientOid":"55be5","side":"BUY","symbol":"BTC-USDT","type":"MARKET">
正如您所看到的,在第二个示例中,我试图将主体设置为具有所有正确参数的JSON字符串,但仍然返回了一个错误的签名错误。实际上,我只需要知道绳子应该是什么样子,这样我就可以正确地制作它。谢谢
我假设您的代码适用于没有参数的私有请求(例如获取余额(。
我在POST请求方面也有点困难,但尝试了几次后,我还是成功地完成了。您需要将参数转储为一个没有空格的JSON字符串,就像您的示例2中一样。
从那时起,你解决了吗?如果你感兴趣的话,我的应用程序上有一个代码可以使用。
另外,不要忘记添加curl
请求的头:
Content-Type: application/json
使用Kucoin支持和Python示例解决。";身体;也必须包含在POST请求中。曾:
reply = netman->post(req, "");
成为:
tradereply = trademan->post(req, data);