如何验证对 Binance API 的 cURL 请求?

Posted

技术标签:

【中文标题】如何验证对 Binance API 的 cURL 请求?【英文标题】:How to authenticate a cURL request to the Binance API? 【发布时间】:2021-05-20 08:41:17 【问题描述】:

尝试了解加密货币。

我想手动向币安创建订单。

我有 API 密钥和秘密,我可以创建请求以获取价格和其他信息,但我不确定如何验证创建订单的请求。

谢谢。

【问题讨论】:

【参考方案1】:

您需要创建参数的签名(使用您的私钥对其进行签名),然后将签名包含在请求中(以及其余参数)。

official docs 有一个使用openssl 创建签名然后使用curl 发送请求(包含签名和其他参数)的示例。

[linux]$ echo -n "symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559" | openssl dgst -sha256 -hmac "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71
(HMAC SHA256)
[linux]$ curl -H "X-MBX-APIKEY: vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api.binance.com/api/v3/order' -d 'symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559&signature=c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71'

对于 JS 实现,请参见 source 的 binance-api-node NPM 包。它使用原生的crypto 包及其createHmac() 方法。

const signature = crypto
  .createHmac('sha256', apiSecret)
  .update(makeQueryString( ...data, timestamp ).substr(1))
  .digest('hex')

【讨论】:

谢谢。会试试这个。

以上是关于如何验证对 Binance API 的 cURL 请求?的主要内容,如果未能解决你的问题,请参考以下文章

如何将美元平价的所有硬币获取到 Binance API?

Binance REST API - 通过查询字符串下达 PHP 订单 (POST)

如何在一个请求中从 Binance API 获取所有(或多个)对的历史 klines?

Binance API 如何在 24 小时内计算 priceChangePercent

如何使用 Binance API,通过股票代码简单 GET 价格

PHP cURL - 具有基本身份验证的HTTP GET 403