Bitget API智能炒币编程机器人开发入门配置教程 二

aijiebots入门量化交易机器人,完全免费,办公环境运行,适合小白入门。

参数签名

API验证

发起请求

所有REST请求的header都必须包含以下key:

  • ACCESS-KEY:API KEY作为一个字符串。

  • ACCESS-SIGN:使用base64编码签名 (参考 HMAC 与 RSA)。

  • ACCESS-TIMESTAMP:您请求的时间戳。

  • ACCESS-PASSPHRASE:您在创建API KEY时设置的口令。

  • Content-Type:统一设置为application/json。

  • locale: 支持多语言, 如:中文(zh-CN),英语(en-US)

获取时间戳

  • Java

  • Python

  • Go

  • JS

  • PHP

Long timestamp = System.currentTimeMillis();

签名

ACCESS-SIGN的请求头是对 timestamp + method.toUpperCase() + requestPath + "?" + queryString + body 字符串(+表示字符串连接)使用 HMAC SHA256 方法加密,通过BASE64 编码输出而得到的。

签名各字段说明

  • timestamp:与 ACCESS-TIMESTAMP 请求头相同。

  • method:请求方法(POST/GET),字母全部大写。

  • requestPath:请求接口路径。

  • queryString:请求URL中(?后的请求参数)的查询字符串。需按key字母序升序

  • body:请求主体对应的字符串,如果请求没有主体(通常为GET请求)则body可省略。

queryString为空时,签名格式

timestamp + method.toUpperCase() + requestPath + body

queryString不为空时,签名格式

timestamp + method.toUpperCase() + requestPath + "?" + queryString + body

举例说明

获取合约深度信息,以 BTCUSDT 为例:

  • Timestamp = 16273667805456

  • Method = "GET"

  • requestPath = "/api/mix/v2/market/depth"

  • queryString= "?limit=20&symbol=BTCUSDT"

生成待签名的字符串:

16273667805456GET/api/mix/v2/market/depth?limit=20&symbol=BTCUSDT

合约下单,以 BTCUSDT 为例:

  • Timestamp = 16273667805456

  • Method = "POST"

  • requestPath = "/api/v2/mix/order/place-order"

  • body = {"productType":"usdt-futures","symbol":"BTCUSDT","size":"8","marginMode":"crossed",side":"buy","orderType":"limit","clientOid":"123456"}

生成待签名的字符串:

16273667805456POST/api/v2/mix/order/place-order{"productType":"usdt-futures","symbol":"BTCUSDT","size":"8","marginMode":"crossed",side":"buy","orderType":"limit","clientOid":"123456"}

生成最终签名的步骤

HMAC

第1步,将待签名字符串使用私钥secretkey进行hmac sha256加密

Signature = hmac_sha256(secretkey, Message)

第2步,对于Signature进行base64编码

Signature = base64.encode(Signature)

RSA

第一步,使用RSA私钥privateKey对待签名字符串进行SHA-256签名。

第二步,对生成的签名字符串进行编码为 base64 string,得到签名字符串进行接口请求。



  admin   2024-5-24