Z Zise Developers
POST /v1/members/{id}/sessions/revoke

强制会员下线(不是封禁,可立刻重登)

Scope members:write 商户自身 x-idempotency-key

踢掉该会员在所有设备上的会话。这不是封禁:他可以立刻重新登录。

要挡住登录走 POST /v1/members/{id}/suspend,两件事正交。

这个端点只认 external_member_id,不认 mem_<uuid>

/v1/members/{id}x-on-behalf-of 的「两种都认」不一致 ——

传我方发出去的 id 会拿到 member_not_found,那是个看起来像

「这个会员不存在」而实际是「你用错标识了」的错误。响应里的 id

也是你传进来的外部号,不是 mem_ 形态。

「不存在」与「属于别的商户」同一响应。

路径参数

字段类型必填说明
id string 必填 只接受 external_member_idmem_<uuid> 会 404。
字段类型必填说明
x-idempotency-key string 必填 UUID v4

响应

200已强制下线
{
  "id": "u-10086",
  "revoked": true
}
404member_not_found —— 不存在 / 属于别的商户 / 你传的是 mem_ 形态的 id,三种同一响应
409idempotency_key_reused · idempotency_in_progress
调用样例
curl -X POST 'https://api.zise.com/v1/members/{id}/sessions/revoke' \
  -H 'authorization: Bearer $TOKEN' \
  -H 'x-zise-merchant: $MERCHANT_ID' \
  -H 'x-idempotency-key: $(uuidgen)'
const res = await fetch(
  "https://api.zise.com/v1/members/{id}/sessions/revoke",
  {
    method: "POST",
    headers: {
      "authorization": "Bearer $TOKEN",
      "x-zise-merchant": "MERCHANT_ID",
      "x-idempotency-key": "crypto.randomUUID()"
    },
  },
);
// 金额一律按字符串读,不要 JSON.parse 成 number
const data = await res.json();
import requests

res = requests.post(
    "https://api.zise.com/v1/members/{id}/sessions/revoke",
    headers={
        "authorization": "Bearer $TOKEN",
        "x-zise-merchant": "$MERCHANT_ID",
        "x-idempotency-key": "$(uuidgen)"
    },
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()