SOLAVIA · 文档

curl 示例(沙箱口径)

以下命令可直接在沙箱执行;以 <base> 表示沙箱 API 根(如 https://demo.solavia.io/api)。全部为 SIM_PGK 模拟数据、mock Sevis、零真实 PII。

1. 登录换会话

curl -sS -X POST "<base>/auth/login" \
  -H "X-API-Key: $TENANT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"subject":"gov_demo","password":"Gov-Demo-2026"}'

返回 session_token(沙箱账号口令仅演示用)。

2. G2P 发放

curl -sS -X POST "<base>/gov/disbursements" \
  -H "X-Session-Token: $SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"subject_id":"C-T1","amount_minor":500,"purpose":"sandbox demo"}'

201 + receipt_hash;金额单位为分,币种 SIM_PGK。

3. 审计链 + 复算

curl -sS "<base>/audit/chain/PAY-GOV-0001" \
  -H "X-Session-Token: $SESSION_TOKEN"

返回 claims→binding→payment→receipt;recomputed 与 receipt_hash 比对,matches 为 true。

4. 离线入队 + 复联补验

# 离线入队:202 QUEUED(不产回执、不入账)
curl -sS -X POST "<base>/agent/cico" \
  -H "X-Session-Token: $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"consumer_handle":"gov_t0_demo","direction":"IN","amount_minor":100,"offline":true,"device_id":"DEV-DEMO-1","device_seq":1}'

# 复联补验:QUEUED → SIMULATED_OK
curl -sS -X POST "<base>/agent/sync" \
  -H "X-Session-Token: $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"device_id":"DEV-DEMO-1"}'

离线队列是服务端真实状态(不是 UI 假状态);重复 device_seq 返回 409 DUPLICATE_OFFLINE。

5. interop 验签/复算

curl -sS -X POST "<base>/interop/v1/verify" \
  -H "X-Session-Token: $OPERATOR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"receipt_verify"}'

当前为 mock peer 阶段;对端公钥未配置时返回 501 INTEROP_NOT_CONFIGURED(诚实边界,不伪造互通)。

6. 身份模拟核验(可选)

curl -sS -X POST "<base>/identity/verify/mock" \
  -H "X-Session-Token: $SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"nid_no":"SIM-NID-0000000001","route":"non_biometric"}'

只接受 SIM- 前缀假证件号;不保存 NID 原文。

★ 所有示例均为沙箱:SIM_PGK、mock Sevis、零真实 PII、不产真实资金;错误码以 errors 页为准。