先搞清楚:这套接口能做什么
币安交易所接口API本质上是一组HTTPS和WebSocket端点。它让你用程序完成行情获取、下单撤单、查询账户余额与成交记录,不必手动点网页。常见用途包括:网格与做市策略、跨交易所价差监控、自动止盈止损、把成交同步到自己的记账系统。
接入前先分清三类接口:现货REST(域名 api.binance.com,路径如 /api/v3/order、/api/v3/ticker/price)适合主动查询和下单;WebSocket行情流(wss://stream.binance.com:9443)适合持续推送;用户数据流需要先用 listenKey 建立连接,才能实时收到自己的订单与资产变动。很多新手只轮询REST查订单状态,既慢又浪费权重,改成用户数据流会稳定得多。
申请与配置:三步拿到可用密钥
1. 创建 API Key
登录后在账户的API管理中创建密钥,会得到 API Key 和 Secret Key。Secret Key 只在创建时完整显示一次,务必立刻保存到密码管理器或服务器环境变量,不要写进代码仓库。
2. 权限最小化
只勾选实际需要的权限。只读行情就不要开“允许交易”,更不要开“允许提现”。需要交易时再开交易权限,并用“仅限现货”等限制降低风险。
3. 绑定IP白名单
把服务器出口IP加入白名单。这样即使密钥泄露,攻击者从其他IP也无法调用。云服务器请使用固定弹性IP,否则重启后IP变化会导致请求被拒。
签名与限频:最容易踩坑的两处
私有接口需要签名。流程是:把参数按字典序拼接成查询串,加上 timestamp 和可选的 recvWindow,用 Secret Key 做 HMAC SHA256 计算,把结果放进 signature 参数,并在请求头带上 X-MBX-APIKEY。常见报错 -1021(时间戳超出窗口)基本都是服务器时间不准,用 NTP 同步即可;-2010 多为下单数量或金额不符合交易对过滤器,需先读 exchangeInfo 拿到 LOT_SIZE、PRICE_FILTER 等规则再做取整。
限频分两层:请求权重和订单数量。响应头里的 X-MBX-USED-WEIGHT-1M 能告诉你当前消耗,接近上限就应降频或改用批量接口。下单频率也有独立限制,短时间大量挂撤单会触发封禁,策略里务必加退避重试,而不是死循环重发。
上线前的自检清单
- 先在测试网(testnet)跑通全流程,确认签名、精度、错误处理都没问题
- 所有金额与数量用字符串或定点数处理,避免浮点误差导致下单失败
- 对超时请求做幂等设计,用
new