理财产品(按 grant_scope + 授权表过滤)
商户自身
只返回对你开放的产品:你自己的(且开放范围不是「暂不开放」)、
按名单授权给你的、或上级对整条子树开放的。草稿 / 已归档 / 已下架
的不出现。
⚠ 清单里出现 ≠ 可申购。这里只做可见性过滤,申购那一刻还会再判
一次(开放范围、开售时间、截止时间、总额度、单人额度、实名等级、
账户处置态)。所以「列表里有但申购被拒」是正常的,不是漂移。
⚠ 加产品 / 加期限档是后台加一行,我方不发版。别把产品清单硬编码
进你的界面。
apr_bps 是万分之一为单位的年化(350 = 3.50%)。
活期的这个数是「此刻的挂牌值」,会变;定期的会在下单那一刻快照进订单。
响应
200不分页。
status 是产品生命周期状态(active / paused /
scheduled / ended …),认不出的原样保留。{
"data": [
{
"id": "ern_3a91f0c2-5d17-4e88-b2a0-91c7d4e6b501",
"code": "FLEX-USDT-01",
"kind": "flexible",
"asset": "USDT",
"term_days": 0,
"apr_bps": 350,
"ledger_scale": 6,
"status": "active"
},
{
"id": "ern_7d2b48ae-19c3-4f60-8c55-0ab3e9f21744",
"code": "FIX-USDT-90",
"kind": "fixed",
"asset": "USDT",
"term_days": 90,
"apr_bps": 620,
"ledger_scale": 6,
"status": "active"
}
],
"next_cursor": null,
"has_more": false
}403
insufficient_scope —— 这把 Key 没有 earn:read请求
curl -X GET 'https://api.zise.com/v1/earn/products' \
-H 'x-auth-token: Bearer $TOKEN'const res = await fetch("https://api.zise.com/v1/earn/products", {
method: "GET",
headers: {
"x-auth-token": "Bearer $TOKEN",
},
});
// 金额按字符串读,别让它变成 number
const data = await res.json();import requests
res = requests.get(
"https://api.zise.com/v1/earn/products",
headers={
"x-auth-token": "Bearer $TOKEN",
},
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()req, _ := http.NewRequest("GET", "https://api.zise.com/v1/earn/products",
nil)
req.Header.Set("x-auth-token", "Bearer $TOKEN")
res, err := http.DefaultClient.Do(req)
// 金额字段用 string 接,不要 float64HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.zise.com/v1/earn/products"))
.header("x-auth-token", "Bearer $TOKEN")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
// 金额字段用 String / BigDecimal,不要 double$ch = curl_init('https://api.zise.com/v1/earn/products');
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": [
{
"id": "ern_3a91f0c2-5d17-4e88-b2a0-91c7d4e6b501",
"code": "FLEX-USDT-01",
"kind": "flexible",
"asset": "USDT",
"term_days": 0,
"apr_bps": 350,
"ledger_scale": 6,
"status": "active"
},
{
"id": "ern_7d2b48ae-19c3-4f60-8c55-0ab3e9f21744",
"code": "FIX-USDT-90",
"kind": "fixed",
"asset": "USDT",
"term_days": 90,
"apr_bps": 620,
"ledger_scale": 6,
"status": "active"
}
],
"next_cursor": null,
"has_more": false
}