# 簽名認證
請求需要鑒權的介面必須包含以下信息:
- 請求頭帶上
X-BX-APIKEY
傳遞apiKey
。 - 請求參數帶上
signature
使用簽名演算法得出的簽名。 - 請求參數帶上
timestamp
作為請求的時間戳,單位是毫秒。伺服器收到請求時會判斷請求中的時間戳,如果是5000毫秒之前發出的,則請求會被認為無效。這個時間空窗值可以通過發送可選參數recvWindow
來定義。
# 簽名說明
signature
請求參數使用 HMAC SHA256 方法加密而得到的。
例如:對於下單請求參數進行簽名
- 介面參數:
quoteOrderQty = 20
side = BUY
symbol = ETH-USDT
timestamp = 1649404670162
type = MARKET
- api信息:
apiKey = Zsm4DcrHBTewmVaElrdwA67PmivPv6VDK6JAkiECZ9QfcUnmn67qjCOgvRuZVOzU
secretKey = UuGuyEGt6ZEkpUObCYCmIfh0elYsZVh80jlYwpJuRZEw70t6vomMH7Sjmf94ztSI
- 參數通過
query string
發送示例
1. 對介面參數進行拼接: quoteOrderQty=20&side=BUY&symbol=ETHUSDT×tamp=1649404670162&type=MARKET
2. 對拼接好的參數字元串使用secretKey生成簽名: 428a3c383bde514baff0d10d3c20e5adfaacaf799e324546dafe5ccc480dd827
echo -n "quoteOrderQty=20&side=BUY&symbol=ETHUSDT×tamp=1649404670162&type=MARKET" | openssl dgst -sha256 -hmac "UuGuyEGt6ZEkpUObCYCmIfh0elYsZVh80jlYwpJuRZEw70t6vomMH7Sjmf94ztSI" -hex
3. 發送請求: curl -H 'X-BX-APIKEY: Zsm4DcrHBTewmVaElrdwA67PmivPv6VDK6JAkiECZ9QfcUnmn67qjCOgvRuZVOzU' 'https://open-api.bingx.com/openApi/spot/v1/trade/order?quoteOrderQty=20&side=BUY&symbol=ETHUSDT×tamp=1649404670162&type=MARKET&signature=428a3c383bde514baff0d10d3c20e5adfaacaf799e324546dafe5ccc480dd827'
- 參數通過
request body
發送示例
1. 對介面參數進行拼接: quoteOrderQty=20&side=BUY&symbol=ETHUSDT×tamp=1649404670162&type=MARKET
2. 對拼接好的參數字元串使用secretKey生成簽名: 428a3c383bde514baff0d10d3c20e5adfaacaf799e324546dafe5ccc480dd827
echo -n "quoteOrderQty=20&side=BUY&symbol=ETHUSDT×tamp=1649404670162&type=MARKET" | openssl dgst -sha256 -hmac "UuGuyEGt6ZEkpUObCYCmIfh0elYsZVh80jlYwpJuRZEw70t6vomMH7Sjmf94ztSI" -hex
3. 發送請求: curl -H 'X-BX-APIKEY: Zsm4DcrHBTewmVaElrdwA67PmivPv6VDK6JAkiECZ9QfcUnmn67qjCOgvRuZVOzU' -X POST 'https://open-api.bingx.com/openApi/spot/v1/trade/order' -d 'quoteOrderQty=20&side=BUY&symbol=ETHUSDT×tamp=1649404670162&type=MARKET&signature=428a3c383bde514baff0d10d3c20e5adfaacaf799e324546dafe5ccc480dd827'
- 參數通過
query string
和request body
發送示例
queryString: quoteOrderQty=20&side=BUY&symbol=ETHUSDT
requestBody: timestamp=1649404670162&type=MARKET
1. 對介面參數進行拼接: quoteOrderQty=20&side=BUY&symbol=ETHUSDTtimestamp=1649404670162&type=MARKET
2. 對拼接好的參數字元串使用secretKey生成簽名: 94e0b4925060a615e1e372d4c929015d4b59d3c89067dc0beeafcfb33a6d8d10
echo -n "quoteOrderQty=20&side=BUY&symbol=ETHUSDTtimestamp=1649404670162&type=MARKET" | openssl dgst -sha256 -hmac "UuGuyEGt6ZEkpUObCYCmIfh0elYsZVh80jlYwpJuRZEw70t6vomMH7Sjmf94ztSI" -hex
3. 發送請求: curl -H 'X-BX-APIKEY: Zsm4DcrHBTewmVaElrdwA67PmivPv6VDK6JAkiECZ9QfcUnmn67qjCOgvRuZVOzU' -X POST 'https://open-api.bingx.com/openApi/spot/v1/trade/order?quoteOrderQty=20&side=BUY&symbol=ETHUSDT' -d 'timestamp=1649404670162&type=MARKET&signature=94e0b4925060a615e1e372d4c929015d4b59d3c89067dc0beeafcfb33a6d8d10'