极客场馆 极客场馆
← 回到开发者文档

通用约定与错误码

极客场馆开放平台统一响应结构、错误码表、幂等键、重试策略、限流约定,以及连通性自检接口 `/ping`。所有 scope 接口共用。

极客场馆开放平台 · 通用约定与错误码

版本 v1 · 配套文档:加密与签名接入 本页是跨接口的公共约定——响应结构、错误码、幂等、重试、限流,外加一个连通性自检 /ping。按 scope 的接口分别见 会员 / 订单 / 钱包 / 约课 / 签到与消费 / 课程·排课·场地


1. 统一响应

所有接口(成功 / 失败)都返回 HTTP 200,body 结构:

{ "code": 200, "message": "ok", "data": { }, "traceId": "tx_xxx" }

code业务码(非 HTTP 状态码);code != 200 即业务失败。加密通道下整个 body 再套一层 {iv, ciphertext, alg}


2. 错误码表

code含义对接方处理
200成功
40101签名错误 / 缺签名头检查 AppSecret 与签名算法,不要重试
40102时间戳过期 / Nonce 重放同步 NTP;换新 Nonce 重试
40103AppId 不存在 / 禁用 / 过期 / 门店未开通开放平台联系门店
40104凭据未启用加密通道联系门店重建启用加密的凭据
40105请求体解密失败检查 AesKey / IV / AAD
40301scope 不足联系门店增加 scope
40302IP 不在白名单联系门店报备出口 IP
42901限流Retry-After 头退避
50001储值余额不足提示充值,不要重试
50002单笔扣款超限 / 幂等冲突(outBizNo 已用但参数不一致)金额超限改金额;幂等冲突换新 outBizNo
50003会员 / 订单不存在或不属于该门店检查参数
5xxxx服务端错误指数退避重试,复用同一 outBizNo

3. 幂等(写接口必看)

所有 POST 写接口必须传 outBizNo

  • 平台按 (AppId, outBizNo) 全局唯一去重
  • 命中已存在记录:返回原响应,业务 code 与首次一致
  • 命中但参数不一致:返 50002
  • 网络重试请用同一个 outBizNo

4. 重试策略

错误是否重试
5xx / 网络错误 / 超时✅ 指数退避(1/2/4/8s),复用同一 outBizNo
42901 限流✅ 按 Retry-After 头退避
40101 / 40102 / 40103 / 40301 / 40302❌ 配置 / 签名问题,不要重试
50001 余额不足 / 50002 超限/幂等冲突 / 50003 不存在❌ 业务问题,按提示处理

5. 限流

  • 默认 20 QPS / AppId(可由门店在创建凭据时调整)
  • 超限返 42901 + Retry-After: 1

6. 连通性自检 · GET /ping

不消耗 scope,只校验签名。用来在联调期跑通签名/加密链路。响应 data

{
  "appId": "gk_open_20260527_fjb2ui", "gymId": 1001, "brandId": 67,
  "scopes": "member:read,order:read,wallet:read,wallet:deduct",
  "environment": "prod", "traceId": "tx_abcd1234", "serverTime": 1716700000
}

7. 通用 FAQ

Q:响应里 code 是 HTTP 状态码吗? 不是。code 是业务码,HTTP 永远是 200(除非网络层故障)。看 code == 200 判断成功。

Q:调用日志在哪查? 全量记录在服务端(含签名失败请求)。排障时把响应头 X-Gk-Trace-Id 告诉门店即可查。