# cashier

卓享汇收银台小程序。

## 页面

- `pages/pay/pay`：收银台首页，支持动态商家名称、顶部背景图和物业费公积金比例。
- `pages/pay/checkout`：半屏确认支付页。
- `pages/cashier/result`：扫码支付结果页。
- `pages/records/index`：付款记录占位页。
- `pages/house/bind`：绑定房源占位页。

## 商家参数

收银台首页支持通过页面参数临时覆盖商家信息：

```text
/pages/pay/pay?merchant_id=xxx&name=商家名&background=图片地址&rate=0.04
```

如果传入 `merchant_id` 或 `scene`，页面会尝试请求 `v1/cashier/merchant` 获取商家配置；接口失败时使用 `App.vue` 中的默认商家配置。

## 图片资源

`App.vue` 中的 `uni.$globalData.RESOURCE_URL` 复用员工端公共资源：

```ts
RESOURCE_URL: 'https://resource.leapy.cn/staff/'
```

使用方式：

```vue
<wd-status-tip :image="uni.$globalData?.RESOURCE_URL + 'tip/message.png'" tip="暂无付款记录" />
<image :src="uni.$globalData?.RESOURCE_URL + 'home/back1.png'" />
```

目前从 `staff` 收集到的常用拼接路径：

- 空状态：`tip/message.png`、`tip/search.png`、`tip/collect.png`
- 首页：`home/card-back.png`、`home/back1.png`、`home/back2.png`
- 首页宫格：`home/grid/yaoqing.png`、`home/grid/cuijiao.png`、`home/grid/wenjuan.png`、`home/grid/gongdan.png`
- 我的：`mine/mine-back1.png`、`mine/card-back.png`、`mine/icon/chuku.png`、`mine/icon/peisong.png`、`mine/icon/baoxiu.png`、`mine/icon/cuijiao.png`、`mine/icon/menjin.png`、`mine/icon/shezhi.png`
- 邀请：`invite/card-back.png`、`invite/poster_back.png`

收银台顶部商家图不走 `RESOURCE_URL`，它来自页面参数或接口返回的 `background` 字段；默认兜底为 `/static/cashier/merchant-bg.png`。

## 无感登录

接口基址、应用 ID 等固定配置在 `config/index.ts`：

```ts
API_BASE_URL: 'https://dev.api.leapy.cn'
APP_ID: '123018'
```

业务请求遇到 HTTP 状态码或响应体 `code` 为 `401`、`402` 时，会自动调用 `POST /user/v3/login.code`，以表单方式提交微信 `code` 和 `app_id`，加密保存新 token 后重放原请求一次。并发失效请求会共用同一次登录，不会重复换取微信 code。

Token 使用 AES 加密后写入本地缓存；首次拉取依赖请在 `cashier` 目录执行：

```bash
npm install
```
