Z Zise Developers

商户级停用(不影响该人在其他商户)

POST /v1/members/{id}/suspend scope: members:write
商户自身 x-idempotency-key

只写商户级那一位。平台级封禁与黑名单是另一套,你看不到也改不了 ——

两者正交,不是同一个字段的两个取值。

停用会挡住 x-on-behalf-of:被停用的会员在代调用时回

member_not_found(与「不存在」同一响应)。所以停用之后,

你手上以他为主体的任何在途流程都会开始拿 404,那是预期行为。

body 的判据是「等不等于 false{"suspended": false} 恢复,

其余一切(缺 body、body 非 JSON、{"suspended": "false"} 字符串、

{})都停用。传字符串 "false" 会把人停掉而不报错。

恢复与停用发同一条事件 member.suspended,靠 status 区分方向 ——

另造一条 member.unsuspended 会让「这个会员现在能不能用」需要看两条

事件流。

路径参数

字段类型必填说明
id string 必填 external_member_idmem_<uuid>
字段类型必填说明
x-idempotency-key string 必填 UUID v4

请求体

字段类型必填说明
suspended boolean 可选 必须是布尔字面量 false 才表示恢复,其余任何取值 (含省略、含字符串 "false")都是停用。

响应

200已写入。status 是写入后的值(suspended / normal
{
  "id": "mem_9f1c0c8e-6f2a-4c1d-9d0b-2a7e5b3f8c41",
  "status": "suspended"
}
404member_not_found(含「属于别的商户」)
409idempotency_key_reused · idempotency_in_progress

会触发的事件

绿 = 终局且是好消息 · 红 = 终局且要处置 · 紫 = 中间态。点进去看事件体与验签。

请求
curl -X POST 'https://api.zise.com/v1/members/{id}/suspend' \
  -H 'x-auth-token: Bearer $TOKEN' \
  -H 'x-idempotency-key: $IDEMPOTENCY_KEY' \
  -H 'content-type: application/json' \
  -d '{
    "suspended": false
  }'
const res = await fetch("https://api.zise.com/v1/members/{id}/suspend", {
  method: "POST",
  headers: {
    "x-auth-token": "Bearer $TOKEN",
    "x-idempotency-key": "$IDEMPOTENCY_KEY",
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "suspended": false
  }),
});
// 金额按字符串读,别让它变成 number
const data = await res.json();
import requests

res = requests.post(
    "https://api.zise.com/v1/members/{id}/suspend",
    headers={
        "x-auth-token": "Bearer $TOKEN",
        "x-idempotency-key": "$IDEMPOTENCY_KEY",
        "content-type": "application/json",
    },
    json={
      "suspended": false
    },
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()
req, _ := http.NewRequest("POST", "https://api.zise.com/v1/members/{id}/suspend",
    strings.NewReader(`{
  "suspended": false
}`))
req.Header.Set("x-auth-token", "Bearer $TOKEN")
req.Header.Set("x-idempotency-key", "$IDEMPOTENCY_KEY")
req.Header.Set("content-type", "application/json")
res, err := http.DefaultClient.Do(req)
// 金额字段用 string 接,不要 float64
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://api.zise.com/v1/members/{id}/suspend"))
    .header("x-auth-token", "Bearer $TOKEN")
    .header("x-idempotency-key", "$IDEMPOTENCY_KEY")
    .header("content-type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("""
{
  "suspended": false
}
"""))
    .build();
// 金额字段用 String / BigDecimal,不要 double
$ch = curl_init('https://api.zise.com/v1/members/{id}/suspend');
curl_setopt_array($ch, [
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'x-auth-token: Bearer $TOKEN',
    'x-idempotency-key: $IDEMPOTENCY_KEY',
    'content-type: application/json',
  ],
  CURLOPT_POSTFIELDS => <<<'JSON'
{
  "suspended": false
}
JSON,
]);
$res = curl_exec($ch);
// 金额用 bcmath / 字符串,不要 floatval
200
{
  "id": "mem_9f1c0c8e-6f2a-4c1d-9d0b-2a7e5b3f8c41",
  "status": "suspended"
}