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_id。 传 mem_<uuid> 会 404。 |
请求头
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
x-idempotency-key |
string | 必填 | UUID v4 |
响应
200已强制下线
{
"id": "u-10086",
"revoked": true
}404
member_not_found —— 不存在 / 属于别的商户 /
你传的是 mem_ 形态的 id,三种同一响应409
idempotency_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()