开发对接 · 使用指南

HTTP API 接入指南:签名、下单与幂等重试

开放 API 适合需要批量下单、自动补能量或把租赁能力嵌入自有系统的团队。

这篇文章说明接入流程、签名算法、下单与轮询的正确姿势,以及如何用幂等键安全重试。

接口能力概览

能力接口示例说明
探活/api/v1/ping检查服务与鉴权是否正常
价格查询/api/v1/query_price按资源类型、数量、租期查询价格
购买能量/api/v1/buy_energy异步受理,返回订单号
订单结果/api/v1/query_result轮询订单最终状态
账户信息/api/v1/user_info查询余额与账户信息
智能托管/api/v1/delegate_energy_smart按地址监控并自动补能量
笔数模式/api/v1/delegate_energy_times按笔数批量委托

认证:请求级 HMAC-SHA256 签名

每个请求都需要携带 x-api-key、x-timestamp、x-nonce、x-signature 四个请求头,下单接口还需要 x-idempotency-key。

签名串由请求方法、路径、查询串、请求体 SHA-256 哈希、时间戳、随机串、API Key 与幂等键依次拼接而成,任何一个字段变化都必须重新签名。

string_to_sign = "\n".join([
    method,              # GET / POST
    path,                # /api/v1/buy_energy
    raw_query,           # 查询串,没有则为空字符串
    sha256(raw_body),    # 请求体的 SHA-256 十六进制
    timestamp,           # 10 位 Unix 时间戳
    nonce,               # 每次请求唯一的随机串
    api_key,
    idempotency_key,     # 非下单接口传空字符串
])
signature = hmac_sha256(api_secret, string_to_sign).lower()
时间戳允许与服务端相差 ±5 分钟,nonce 不允许重复使用。签名失败通常来自这三点:请求体被序列化过两次、查询串与实际发送不一致、复用了旧的 nonce。

下单与状态轮询

下单接口在校验、扣款后立即返回订单号,委托在后台异步执行。正确做法是拿到订单号后每 1~2 秒轮询一次订单结果,直到状态进入终态。

状态含义建议动作
pending订单已创建,等待处理继续轮询
processing已受理并扣款,委托执行中每 1~2 秒轮询
completed能量已成功委托结束流程
failed执行失败,余额已退回检查参数后重试
refund_pending失败待退款审核等待平台确认,不要重复下单
refunded已退款结束流程

幂等与重试策略

  • 下单请求必须携带 x-idempotency-key,网络超时后沿用同一个键重试,服务端只会创建一个订单。
  • 收到 425(相同幂等键处理中)时不要换键重试,稍后用同一个键查询或重试。
  • 收到 429(请求过于频繁)时降低频率,默认每个 API Key 每分钟 300 次,轮询间隔建议不低于 1 秒。
  • 请求 body 序列化方式要固定,JSON 键顺序与空格差异都会导致签名不一致。

错误码速查

HTTP 状态含义处理方式
401认证失败核对 API Key、时间戳、nonce 与签名串
403IP 不在白名单在 API Key 设置中添加当前出口 IP
409判定为重放更换新的 nonce 与时间戳后重新签名
425相同幂等键处理中沿用同一个幂等键稍后重试
429请求过于频繁降低请求频率
503 / 504服务繁忙或超时用同一个幂等键重试,或用订单结果接口确认状态

上线前的检查清单

  • API Key 已配置 IP 白名单,密钥保存在服务端而不是前端。
  • 签名逻辑有单元测试,覆盖 GET 与 POST、带查询串与不带查询串的情况。
  • 下单流程带幂等键,超时重试不会重复下单。
  • 订单状态有终态判断,轮询不会无限执行。
  • 对账逻辑:记录订单号、状态、金额,定期核对平台订单记录。
需要直接下单?注册后即可选择能量档位与租期,能量通常数秒内委托到账;下单前可以用 费用计算器 估算成本。
← 返回指南列表查看常见问题 →

按需租能量,用多少租多少

65,000 能量起租,5 分钟至 30 天可选,注册后即可查看实时价格并下单。