QUICKSTART
3 步开始
- 1在 Web 后台创建 API Key登录 admin.quote-jinxinoffice.shunxintech.net→ 顶栏「开发者」→ 创建 API Key(仅 OWNER / ADMIN 可操作)
- 2复制完整 Key(仅显示一次)Key 形如 jxq_live_xxxxxxxxxxxxxxxx,关闭弹窗后再也读不到。建议保存到 1Password / Bitwarden / Vault
- 3调用任意接口在请求 header 加 X-API-Key,访问 https://quote-jinxinoffice.shunxintech.net/v3 下的任意端点
AUTHENTICATION
鉴权
# 在每个请求加 X-API-Key 头
curl https://quote-jinxinoffice.shunxintech.net/v3/customers \ -H "X-API-Key: jxq_live_xxxxxxxxxxxxxxxx"
权限 · read
只读:所有 GET 接口可调,禁止任何写入
权限 · write
可读可写:覆盖所有读写接口
权限 · 即将上线
细粒度 scope(quote:read / customer:write 等)
RESPONSE
响应格式
成功
{
"code": 0,
"message": "ok",
"data": { ... },
"request_id": "req_xxx",
"timestamp": 1779597307129
}失败
{
"code": 401, // 401/403/404/409/422/429/500
"message": "API Key 无效",
"data": null,
"request_id": "req_xxx",
"timestamp": 1779597307129
}| code | 含义 |
|---|---|
| 0 | 成功 |
| 401 | API Key 无效 / 已撤销 / 过期 |
| 403 | 权限不足(read scope 调写接口) |
| 404 | 资源不存在 |
| 409 | 冲突(如重复创建唯一字段) |
| 422 | 参数校验失败 |
| 429 | 限流(默认每 key 1000/小时) |
| 500 | 服务器内部错误(请上报 request_id) |
REFERENCE
端点速查
CUSTOMERS
客户
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| GET | /customers | 客户列表(分页/搜索/筛选) | 只读 |
| GET | /customers/:id | 客户详情(含联系人、跟进、报价历史) | 只读 |
| POST | /customers | 新建客户 | 可读可写 |
| PATCH | /customers/:id | 更新客户 | 可读可写 |
| POST | /customers/:id/contacts | 加联系人 | 可读可写 |
| POST | /customers/:id/activities | 加跟进记录 | 可读可写 |
PRODUCTS
产品
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| GET | /products | 产品列表 | 只读 |
| GET | /products/:id | 产品详情 | 只读 |
| POST | /products | 新建产品 | 可读可写 |
| PATCH | /products/:id | 更新产品 | 可读可写 |
| GET | /product-categories | 产品分类列表 | 只读 |
| GET | /units | 单位字典 | 只读 |
QUOTES
报价单
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| GET | /quotes | 报价单列表(按状态/客户/时间筛选) | 只读 |
| GET | /quotes/:id | 报价单详情(含明细 / 状态 / 阅读次数) | 只读 |
| POST | /quotes | 新建报价单 | 可读可写 |
| PATCH | /quotes/:id | 更新报价单 / 改状态 | 可读可写 |
| POST | /quotes/:id/duplicate | 复制一张报价单 | 可读可写 |
| POST | /quotes/:id/share | 生成公开分享链接 + 短码 | 可读可写 |
OTHER
单产品询价 / 订单 / 项目
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| GET | /inquiries | 单产品询价列表(按 SKU 分享生成) | 只读 |
| GET | /orders | 订单列表(按报价单转成) | 只读 |
| PATCH | /orders/:id | 更新订单状态 / 收款进度 | 可读可写 |
| GET | /projects | 项目列表(含关联报价 / 订单) | 只读 |
| POST | /projects/:id/activities | 加项目跟进时间线 | 可读可写 |
| GET | /quote-templates | 报价模板列表(系统 + 自建) | 只读 |
完整字段说明 / 请求示例 / 错误码对照随后会有独立 OpenAPI 文档站。需要某个具体接口的字段示例可联系 客服邮箱。
LIMITS & SECURITY
限流与安全
默认限流
每 key 1000 次 / 小时(滑动窗口)。企业版可定制
撤销立即生效
在 Web 后台点撤销 → 一秒内所有请求 401。无缓存延迟
HTTPS only + HSTS
所有调用走 TLS 1.2+,浏览器强制 https,无明文降级
完整审计日志
每次调用记录:哪把 key / 哪个端点 / 状态码 / IP / 时间
Key 永远不可读
服务端只存 SHA-256 hash。即使数据库泄漏,原始 key 不可逆推
租户隔离
API Key 自带租户上下文,无法跨租户访问数据
ROADMAP
即将上线
- Q3Webhook 出站报价单 / 订单 / 客户状态变更时主动 POST 到你的 URL,HMAC 签名
- Q3Node / Python SDKnpm install @jinxin/sdk · pip install jinxin-sdk
- Q4细粒度 scopequote:read / customer:write 等 12+ 维度精细授权
- Q4OAuth Apps让第三方 SaaS 替用户授权访问,无需手工管理 key
- 2027Docker 自部署版一行 docker-compose up,数据完全在你自己机房
准备好开始集成了?
登录 Web 后台 → 顶栏「开发者」→ 创建你的第一把 API Key
前往开发者中心 →