我在使用Binance的API时遇到了困难,我已经设法通过查询字符串(如ping服务器、股票代码信息、我现在面临的挑战是使用cURL通过查询字符串执行POST请求。我一直在从各个地方抓取代码,并返回到API以使其工作,但我不确定为什么从结果中返回此错误...{”代码”:-1102,“msg”:“强制参数”signature“未发送,为空/null,或格式错误。"}(ERROR SHOWN ON WEBPAGE)。我回显了签名,它是一个乱码负载,所以我会相信在顶部执行的hash_hmac将工作,但老实说,我很幸运地使GET请求工作。任何人都有任何建议,为什么这将被打破?谢谢!
$apikey = "MYKEY";
$apisecret = "MYSECRET";
$timestamp = time()*1000; //get current timestamp in milliseconds
$signature = hash_hmac('sha256', "TRXBTC&type=market&side=buy&quantity=100.00&recvWindow=10000000000000000×tamp=".$timestamp, $apisecret);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.binance.com/api/v3/order/test");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "symbol=TRXBTC&type=market&side=buy&quantity=100.00&recvWindow=10000000000000000×tamp=".$timestamp);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded","X-MBX-APIKEY: ".$apikey,"signature: ".$signature));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
4条答案
按热度按时间u91tlkcl1#
根据其API文档:
SIGNED终结点需要在查询字符串或请求正文中发送一个附加参数,即签名。
您不通过这两种方法发送签名,而是通过标头发送签名。
更改此内容:
对此:
uelo1irk2#
h7appiyu3#
以下是使用php-curl-class的示例
8wtpewkr4#
我也遇到了同样的问题,上面的这些都没有帮助。所以我终于找到了如何在路上订购。所以,也许这能帮助到一些人。
调用函数: