Z Zise Developers

收款人标识方式白名单(由服务端下发)

GET /v1/transfers/recipient-types scope: transfers:read
商户自身

不要写死这个清单。 它由平台按商户配置(uid / email / phone),

传一个没开的类型一律被拒 —— 旧工程的客户端给了「手机号」而后端只认

会员号与邮箱,选它必失败。

缺省是最保守的一档(只有 uid):配置解析不出来时我方不兜底成全开

那是把一个配置错误变成一次能力扩张。

⚠ 选了 phone 就必须传 E.164(带 + 与国家码)。我方会先归一化再查,

归一化不出来直接当「查无此人」—— 收款方库里存的是归一化后的形态,

用户输的 13800138000 永远匹配不到 +8613800138000

响应

200不分页;label 是中文人话,你的界面可以直接用。
{
  "data": [
    {
      "type": "uid",
      "label": "会员号"
    },
    {
      "type": "email",
      "label": "邮箱"
    }
  ],
  "next_cursor": null,
  "has_more": false
}
403insufficient_scope —— 这把 Key 没有 transfers:read
请求
curl -X GET 'https://api.zise.com/v1/transfers/recipient-types' \
  -H 'x-auth-token: Bearer $TOKEN'
const res = await fetch("https://api.zise.com/v1/transfers/recipient-types", {
  method: "GET",
  headers: {
    "x-auth-token": "Bearer $TOKEN",
  },
});
// 金额按字符串读,别让它变成 number
const data = await res.json();
import requests

res = requests.get(
    "https://api.zise.com/v1/transfers/recipient-types",
    headers={
        "x-auth-token": "Bearer $TOKEN",
    },
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()
req, _ := http.NewRequest("GET", "https://api.zise.com/v1/transfers/recipient-types",
    nil)
req.Header.Set("x-auth-token", "Bearer $TOKEN")
res, err := http.DefaultClient.Do(req)
// 金额字段用 string 接,不要 float64
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://api.zise.com/v1/transfers/recipient-types"))
    .header("x-auth-token", "Bearer $TOKEN")
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();
// 金额字段用 String / BigDecimal,不要 double
$ch = curl_init('https://api.zise.com/v1/transfers/recipient-types');
curl_setopt_array($ch, [
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'x-auth-token: Bearer $TOKEN',
  ],
]);
$res = curl_exec($ch);
// 金额用 bcmath / 字符串,不要 floatval
200
{
  "data": [
    {
      "type": "uid",
      "label": "会员号"
    },
    {
      "type": "email",
      "label": "邮箱"
    }
  ],
  "next_cursor": null,
  "has_more": false
}