← 返回首页

开发者接入指南

全部示例基于本机 Docker 部署的真实服务(http://localhost:3000/api/v1), 已通过端到端回归验证,可直接复制运行。完整接口定义见 Swagger 在线文档

三步完成第一笔自助打印订单

1

获取访问令牌(演示环境免密登录)

# mock 模式(MOCK_ENABLED=true 的开发/演示环境):任意用户名密码即可换取 JWT
curl -X POST http://localhost:3000/api/v1/auth/wx-login \
  -H "Content-Type: application/json" \
  -d '{"code": "mock_local_dev_user"}'

# 响应 data.accessToken 即 Bearer Token;正式环境请使用微信授权 code 换取。
2

上传打印文件(单文件直传)

# 小文件走单传接口;大文件支持分片上传(见 Swagger files 节点)
curl -X POST http://localhost:3000/api/v1/files/upload \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@./document.pdf"

# 响应 data.fileId 用于下单;服务端自动解析页数(PDF 精确、图片=1 页)。
3

创建订单并支付

curl -X POST http://localhost:3000/api/v1/orders \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{
    "order_type": "document",           // document | photo | id_photo | poster | banner ...
    "delivery_mode": "pickup",          // pickup | express | same_city
    "product_name": "学习资料",
    "quantity": 1,
    "page_count": 3,                    // 文档类必填,按页计价
    "file_ids": ["上一步返回的 fileId"],
    "print_params": { "paperSize": "A4", "colorMode": "black_white", "sides": "single", "copies": 1 },
    "recipient_name": "测试用户", "recipient_phone": "13800138000",
    "recipient_address": "北京市海淀区", "recipient_province": "北京市",
    "recipient_city": "北京市", "recipient_district": "海淀区"
  }'

# 订单创建后为 pending_payment,调用支付(mock 模式直接成功):   
curl -X POST http://localhost:3000/api/v1/payments \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"order_id": "orderId", "openid": "openid"}'
⚡ 支付成功后,30 秒内系统将按「距离 + 接单率 + 商户报价」智能评分自动分配至最优门店; 也可由管理员调用 POST /orders/:id/assign 手动指定门店(需 admin 权限)。

核心接口一览

方法路径说明鉴权
POST/auth/wx-login登录换 JWT(mock / 微信 code 双模式)公开
POST/auth/switch-role切换门店/代理身份,签发新 tokenJWT
POST/files/upload单文件直传,返回 fileId 与下载 URLJWT
POST/orders/price-preview价格预览(不下单)JWT
POST/orders创建订单JWT
POST/payments创建支付单并完成支付JWT
GET/stats/platform-overview平台运营概览聚合数据公开
GET/health健康检查(DB/Redis 连接明细)公开
POST/orders/:id/accept商户接单(assigned → accepted)商户 JWT
POST/terminal/orders/:id/status打印状态回传(PRINTING / PRINTED 等)商户 JWT

全生命周期流转

pending_payment → paid → assigned → accepted → printing → printed
     ↑(拒单退回)                              ↓
   assigned ← (重新分配)              waiting_pickup → picked_up
                                          → in_transit → delivering → completed

旁路分支:
  pending_payment → cancelled            (取消)
  *                → refunding → refunded(退款)
  printing         → abnormal → paid     (异常 → 重处理)

所有状态变更基于乐观锁(请求需携带当前 version), 非法流转将被状态机拒绝并返回 ORDER_STATUS_INVALID

📘 更多能力(分片上传、优惠券、商城、电商对接、结算提现等)请查阅 Swagger 在线文档; 平台实时运行指标见首页「实时数据」区块。