# 开发 Mock（领取 / 91 查单）

优先使用 **后台 GUI**：登录运营后台 → 左侧 **开发 / 开发 Mock**（仅非 production 环境显示）。

生产镜像默认 `NODE_ENV=production`，接口会 403。本地 docker-compose.dev 默认可用；特殊环境可设 `ENABLE_DEV_MOCK=1`。

## GUI 能做什么

| 卡片 | 作用 |
| --- | --- |
| lewan 领取 | 写库生成 91 订单 + claim，强制 UID 匹配流（不调 CloudTentacles） |
| feifei 领取 | 写库生成 feifei 任务 + 本站 claim；H5 带 uid（不调真实 feifei） |
| 91 查单 | 生成带签名的 `POST /api/v1/open/91/orders/query`，可本机执行 |

推荐路径：

1. lewan 选 `binding` + UID `10001` → 生成 → 打开领取链接 → 确认兑换  
2. 用同一 orderNo 点「模拟 91 查单」验证 cards / claimUrl  

## CLI（可选）

```bash
# lewan
docker compose -f docker-compose.dev.yml exec -T backend \
  npm run mock:claim -- --step=binding --uid=10001

# feifei
docker compose -f docker-compose.dev.yml exec -T backend \
  npm run mock:feifei -- --step=ready --uid=166909256

# 91 查单（需 KAQUAN91_SECRET）
docker compose -f docker-compose.dev.yml exec -T backend \
  npm run mock:open91 -- --baseUrl=http://127.0.0.1:3000 --mode=query --orderNo=MOCK91...
```

## 步骤说明

### lewan `--step`

| step | 含义 |
| --- | --- |
| `uid` | 待填 UID（Step1） |
| `binding` | 已预填 UID，角色 ID 已匹配（推荐） |
| `confirm` | 待确认兑换 |
| `result` | 已模拟完成 |

兑换走 `context.mock.enabled=true`，不会真实发货。

### feifei `--step`

| step | 含义 |
| --- | --- |
| `uid` | 待填 UID |
| `ready` | 已填 UID，可打开带 uid 的 H5 |
| `completed` / `failed` | 模拟终态 |

## 与真实环境边界

- Mock **不**替代真实 CloudTentacles / feifei 联调  
- 91 `create` CLI 仍会走真实商品匹配；造单测领取请用 GUI / `mock:claim` / `mock:feifei`  
- 写入的是开发库真实行，注意别在生产 volume 上开 Mock  
