开发者门户
沙箱环境
沙箱联调 · 预约开放可预约
沙箱环境当前按预约开放:先看示例代码判断是否合用,再提交联调预约,我们安排窗口。 以下示例为演示数据 · 模拟环境,可在正式接入前用于联调参考。
现在能做什么
① 阅读三语言示例,判断接口形态是否合用;② 提交预约,约定联调窗口;③ 开放后接收邮件通知后再取 Key。
三语言示例
TS=$(date +%s)
NONCE=$(openssl rand -hex 16)
BODY='{"author":"某某","era":"当代·2025年"}'
BODYHASH=$(printf '%s' "$BODY" | openssl dgst -sha256 -hex | awk '{print $2}')
SIGN=$(printf '%s' "POST/api/v1/filing${BODYHASH}${TS}${NONCE}" \
| openssl dgst -sha256 -hmac "$API_SECRET" -hex | awk '{print $2}')
curl -X POST https://api.artstack.cn/api/v1/filing \
-H "X-Api-Key: $API_KEY" \
-H "X-Timestamp: $TS" \
-H "X-Nonce: $NONCE" \
-H "X-Signature: $SIGN" \
-H "Content-Type: application/json" \
-d "$BODY"import hmac, hashlib, time, secrets, json, requests
api_key = "ak_demo_xxx"
api_secret = "sk_demo_xxx"
path = "/api/v1/filing"
body = json.dumps({"author": "某某", "era": "当代·2025年"},
ensure_ascii=False, separators=(",", ":"))
ts = str(int(time.time()))
nonce = secrets.token_hex(16)
body_hash = hashlib.sha256(body.encode()).hexdigest()
msg = f"POST{path}{body_hash}{ts}{nonce}"
sig = hmac.new(api_secret.encode(), msg.encode(), hashlib.sha256).hexdigest()
r = requests.post(
"https://api.artstack.cn" + path,
data=body.encode(),
headers={
"X-Api-Key": api_key,
"X-Timestamp": ts,
"X-Nonce": nonce,
"X-Signature": sig,
"Content-Type": "application/json",
},
)
print(r.status_code, r.json())const crypto = require('crypto');
const apiKey = 'ak_demo_xxx';
const apiSecret = 'sk_demo_xxx';
const path = '/api/v1/filing';
const body = JSON.stringify({ author: '某某', era: '当代·2025年' });
const ts = String(Math.floor(Date.now() / 1000));
const nonce = crypto.randomBytes(16).toString('hex');
const bodyHash = crypto.createHash('sha256').update(body).digest('hex');
const msg = `POST${path}${bodyHash}${ts}${nonce}`;
const signature = crypto.createHmac('sha256', apiSecret).update(msg).digest('hex');
fetch('https://api.artstack.cn' + path, {
method: 'POST',
headers: {
'X-Api-Key': apiKey,
'X-Timestamp': ts,
'X-Nonce': nonce,
'X-Signature': signature,
'Content-Type': 'application/json',
},
body,
}).then((r) => r.json()).then(console.log);三步走到沙箱联调
未就绪的能力均有明确的下一步动作:预约 / 预登记 / 邮件通知。
预约联调窗口
提交开发者角色意向,我们按队列安排沙箱联调时间与场景范围。
预登记使用场景
说明预计调用量与业务场景,便于提前确认配额档位(TRIAL / STANDARD / ENTERPRISE)。
邮件通知开放
Key 自助发放与自注册地址开放后,我们按预登记顺序邮件通知。
沙箱数据说明
演示数据 · 模拟环境沙箱内所有数据均为模拟,不可用于生产。
- 备案号示例:AS-2026-000123 / AS-2026-000088 / AS-2026-000456。
- 托管状态示例:UNPAID → FROZEN → RELEASED(详见服务能力页状态机)。
- 存证链选型中,哈希与时间戳均为模拟值。
资金由持牌支付机构托管,不二清:艺栈网不触碰、不沉淀交易资金,不做二次清算。