Zise 平台层 API
所有业务线共用的一层:换取令牌、商户资料、会员与 KYC、资产目录。
三段式鉴权
1. POST /v1/connect/token(x-client-id + x-api-key)→ 30 分钟令牌
2. 业务调用带 x-auth-token: Bearer <token>
3. 写操作强制签名(x-timestamp / x-nonce / x-signature)
签名串五段,换行连接,顺序不可换:
METHOD
PATH_WITH_QUERY # 含 query string
x-timestamp
x-nonce
hex(sha256(rawBody)) # 空 body 用 sha256("") 的定值
x-signature = base64(HMAC-SHA256(signing_key, 签名串))
三条纪律:
- PATH 必须参与签名(含 query)——它是防「同一份 body 被重放到
另一个端点」的唯一手段;
- 用 raw body,不要重新序列化 —— JSON 重排键序会让签名恒不匹配,
而报错长得像「密钥配错了」;
- nonce 真的防重放 —— 5 分钟内不可二用;
x-timestamp容差 ±300 秒。
504 的语义
收到网关超时时用同一把幂等键重试(我方可能已经处理完)。
收到明确的业务失败后要换新键重试(同键会原样返回那次失败)。
端点
POST/v1/connect/token
换取访问令牌
GET/v1/merchant
商户资料、被授权产品、生效限额
GET/v1/merchant/balances
商户资金账户(可用 / 冻结 / 待结算 / 托管声明)
GET/v1/assets
本商户可记账的资产白名单与精度
POST/v1/members
建会员
幂等键 = external_member_id 天然去重(另加 x-idempotency-key 一层)。
⚠ 若该邮箱已属于平台上的某个自然人,不返回「已注册」 ——
返回体与全新注册逐字段一致。区分开就等于给了一个跨商户会员探测接口。
GET/v1/members
会员列表(游标分页)
GET/v1/members/{id}
会员详情(KYC 层级、处置态)
PATCH/v1/members/{id}
改商户侧属性(昵称、语言)
POST/v1/members/{id}/suspend
商户级停用(不影响该人在其他商户)
GET/v1/kyc
KYC 结论(level + 最小字段,无影像、无档案)
GET/v1/kyc/requirements
各业务线要求的 KYC 层级