# 业务场景管理 - PRD

## 文档信息

| 项目 | 内容 |
|------|------|
| 文档版本 | v1.2.0 |
| 创建日期 | 2026-03-05 |
| 更新日期 | 2026-03-09 |
| 模块名称 | 业务场景管理 |
| 文档状态 | 待评审 |

---

## 一、模块概述

### 1.1 模块定位

业务场景管理是支付中台的基础配置模块,负责管理支付服务商支持的支付方式和业务场景。作为支付中台的配置层,为小区支付配置提供支付方式和业务场景的元数据。

### 1.2 核心功能

1. **支付方式配置** - 配置服务商支持的支付方式(扫码、H5、APP、托收等)
2. **业务场景配置** - 配置服务商支持的业务场景(生活缴费、普通商户、牌照支付等)
3. **能力矩阵视图** - 以矩阵形式展示服务商支付能力 (v1.2.0新增)
4. **场景-支付方式兼容性配置** - 配置业务场景与支付方式的兼容关系 (v1.2.0新增)

### 1.3 使用角色

- **运营平台管理员** - 配置支付方式、业务场景
- **超级管理员** - 查看和管理所有配置

### 1.4 v1.2.0版本说明

**新增功能:**
- 能力矩阵视图:以矩阵形式直观展示各服务商支持的支付方式和业务场景
- 场景-支付方式兼容性配置:定义哪些业务场景可以使用哪些支付方式
- 快速配置向导:引导式完成服务商能力配置

**模块来源:**
- 本模块从原"支付渠道管理"模块拆分而来
- 专注于支付方式和业务场景的配置管理
- 运营平台和服务商配置管理移至"运营平台服务商配置"模块

---

## 二、功能详细说明

### 2.1 支付方式配置

#### 2.1.1 功能描述

为每个支付服务商配置其支持的支付方式(如扫码支付、H5支付、APP支付、银行托收等),不同支付方式对应不同的技术实现和用户体验。

#### 2.1.2 业务规则

1. **关联关系**
   - 支付方式必须关联到具体的支付服务商
   - 同一服务商下,支付方式代码不能重复

2. **签约要求**
   - 银行托收类支付方式:need_sign = true (必须签约)
   - 微信生活缴费场景:need_sign = true (需要签约才能享受优惠费率)
   - 普通支付方式:need_sign = false

3. **状态管理**
   - 停用支付方式后,配置了该支付方式的小区无法使用
   - 停用不影响已有订单

4. **排序规则**
   - sort_order 数值越小,优先级越高
   - 用于小区配置时的默认排序

#### 2.1.3 页面交互

**支付方式列表页**
- 展示所有支付方式,按服务商分组显示
- 显示字段:服务商名称、支付方式名称、支付方式代码、是否需要签约、状态、排序
- 支持按服务商筛选
- 支持启用/停用、调整排序、编辑、删除

**新增/编辑支付方式(弹窗形式)**
- 支付服务商(必填,下拉选择,仅显示已启用的服务商)
- 支付方式代码(必填,下拉选择)
  - JSAPI - 微信公众号支付
  - NATIVE - 微信扫码支付
  - H5 - H5支付
  - APP - APP支付
  - FACEPAY - 支付宝当面付
  - BANK_COLLECT - 银行托收
  - 其他...

- 支付方式名称(必填,根据代码自动填充,可修改)
- 是否需要签约(开关,默认关闭)
- 排序(数字,默认100)
- 备注(可选)

**批量操作**
- 支持批量启用/停用支付方式

#### 2.1.4 表单验证

| 字段 | 验证规则 |
|------|---------|
| 支付服务商 | 必填,必须选择已启用的服务商 |
| 支付方式代码 | 必填,仅支持大写字母和下划线 |
| 支付方式名称 | 必填,2-50字符 |
| 排序 | 必填,正整数,范围1-999 |

#### 2.1.5 操作提示

| 操作 | 提示信息 |
|------|---------|
| 添加成功 | "支付方式添加成功" |
| 编辑成功 | "支付方式更新成功" |
| 删除确认 | "删除后数据不可恢复,确认删除?" |
| 删除失败 | "该支付方式已被使用,无法删除" |
| 批量操作成功 | "批量操作成功,共处理X条记录" |

---

### 2.2 业务场景配置

#### 2.2.1 功能描述

为支付服务商配置支持的业务场景。业务场景是服务商对不同行业的分类,不同场景可能有不同的手续费率、结算周期和业务限制。

#### 2.2.2 业务规则

1. **关联关系**
   - 业务场景必须关联到具体的支付服务商
   - 同一服务商下,场景代码不能重复

2. **签约要求**
   - 生活缴费场景:通常需要签约(need_sign = true)
   - 普通商户场景:不需要签约(need_sign = false)
   - 银行托收场景:必须签约(need_sign = true)

3. **资质要求**
   - 生活缴费场景:需要提交行业资质(need_qualification = true)
   - 普通商户场景:通常不需要(need_qualification = false)

4. **状态管理**
   - 停用场景后,配置了该场景的小区无法使用
   - 停用不影响已有订单

#### 2.2.3 页面交互

**业务场景列表页**
- 展示所有业务场景,按服务商分组显示
- 显示字段:服务商名称、场景名称、场景代码、是否需要签约、是否需要资质、支持的服务商、状态
- 支持按服务商筛选
- 支持启用/停用、编辑、删除

**新增/编辑业务场景(弹窗形式)**
- 支付服务商(必填,下拉选择,仅显示已启用的服务商)
- 场景代码(必填,下拉选择)
  - NORMAL_PAYMENT - 普通支付
  - LIVING_PAYMENT - 生活缴费
  - BANK_COLLECT - 银行托收
  - LICENSE_PLATE - 牌照支付
  - 其他...

- 场景名称(必填,根据代码自动填充,可修改)
- 是否需要签约(开关)
- 是否需要资质(开关)
- 支持的服务商(多选,显示所有启用的服务商列表)
- 备注(可选,说明该场景的特点和要求)

**批量操作**
- 支持批量启用/停用业务场景

#### 2.2.4 常见业务场景说明

| 场景代码 | 场景名称 | 需要签约 | 需要资质 | 支持的服务商 | 说明 |
|---------|---------|---------|---------|-------------|------|
| NORMAL_PAYMENT | 普通支付 | 否 | 否 | 微信、支付宝、银联 | 通用商户场景 |
| LIVING_PAYMENT | 生活缴费 | 是 | 是 | 微信、支付宝、银联 | 物业费、水电费等,享受优惠费率 |
| BANK_COLLECT | 银行托收 | 是 | 否 | 易宝、银联 | 定期自动扣款场景 |
| LICENSE_PLATE | 牌照支付 | 否 | 否 | 微信、支付宝、银联 | 车牌号无感支付场景 |

#### 2.2.5 表单验证

| 字段 | 验证规则 |
|------|---------|
| 支付服务商 | 必填,必须选择已启用的服务商 |
| 场景代码 | 必填,仅支持大写字母和下划线 |
| 场景名称 | 必填,2-50字符 |

#### 2.2.6 操作提示

| 操作 | 提示信息 |
|------|---------|
| 添加成功 | "业务场景添加成功" |
| 编辑成功 | "业务场景更新成功" |
| 删除确认 | "删除后数据不可恢复,确认删除?" |
| 删除失败 | "该业务场景已被使用,无法删除" |

---

### 2.3 能力矩阵视图 (v1.2.0新增)

#### 2.3.1 功能描述

以矩阵形式直观展示各支付服务商支持的支付方式和业务场景能力,便于管理员快速了解和比较不同服务商的能力覆盖范围。

#### 2.3.2 页面交互

**能力矩阵视图**

```
┌────────────────────────────────────────────────────────────────────────────────────┐
│  支付服务商能力矩阵                                          [切换到列表视图]      │
├────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                    │
│  支付方式矩阵:                                                                     │
│  ┌───────────────┬────────┬────────┬────────┬────────┬────────┬───────────┐        │
│  │ 服务商 \ 方式  │ JSAPI  │ NATIVE │  H5    │  APP   │ 托收   │ 当面付    │        │
│  ├───────────────┼────────┼────────┼────────┼────────┼────────┼───────────┤        │
│  │ 微信支付      │   ✓    │   ✓    │   ✓    │   ✓    │   -    │    -      │        │
│  │ 支付宝        │   -    │   -    │   ✓    │   ✓    │   -    │    ✓      │        │
│  │ 易宝支付      │   -    │   -    │   -    │   -    │   ✓    │    -      │        │
│  │ 银联          │   -    │   ✓    │   ✓    │   ✓    │   ✓    │    -      │        │
│  │ 拉卡拉        │   -    │   ✓    │   ✓    │   -    │   -    │    ✓      │        │
│  └───────────────┴────────┴────────┴────────┴────────┴────────┴───────────┘        │
│                                                                                    │
│  业务场景矩阵:                                                                     │
│  ┌───────────────┬────────┬────────┬────────┬────────┐                             │
│  │ 服务商 \ 场景  │ 普通   │ 生活缴费│ 银行托收│ 车牌付 │                             │
│  ├───────────────┼────────┼────────┼────────┼────────┤                             │
│  │ 微信支付      │   ✓    │   ✓    │   -    │   ✓    │                             │
│  │ 支付宝        │   ✓    │   ✓    │   -    │   ✓    │                             │
│  │ 易宝支付      │   -    │   -    │   ✓    │   -    │                             │
│  │ 银联          │   ✓    │   ✓    │   ✓    │   ✓    │                             │
│  │ 拉卡拉        │   ✓    │   -    │   -    │   -    │                             │
│  └───────────────┴────────┴────────┴────────┴────────┘                             │
│                                                                                    │
│  图例: ✓ 支持   - 不支持   ● 签约要求   ▲ 资质要求                                  │
│                                                                                    │
└────────────────────────────────────────────────────────────────────────────────────┘
```

#### 2.3.3 矩阵交互功能

1. **快速编辑**: 点击矩阵单元格可快速启用/停用该能力
2. **悬停提示**: 鼠标悬停显示详细信息(排序、签约要求、备注等)
3. **批量操作**: 支持选中多个单元格批量设置状态
4. **导出功能**: 支持导出矩阵为Excel或PDF

---

### 2.4 场景-支付方式兼容性配置 (v1.2.0新增)

#### 2.4.1 功能描述

定义不同业务场景可以使用哪些支付方式,确保小区配置时只能选择兼容的组合。

#### 2.4.2 兼容性矩阵

| 业务场景 | JSAPI | NATIVE | H5 | APP | 托收 | 当面付 | 说明 |
|---------|-------|--------|-----|-----|------|--------|------|
| 普通支付 | ✓ | ✓ | ✓ | ✓ | - | ✓ | 支持所有主动支付方式 |
| 生活缴费 | ✓ | ✓ | ✓ | - | - | ✓ | 不支持APP支付和托收 |
| 银行托收 | - | - | - | - | ✓ | - | 仅支持托收方式 |
| 车牌付 | ✓ | ✓ | ✓ | - | - | - | 支持扫码类支付 |

#### 2.4.3 页面交互

**兼容性配置页面**

```
┌────────────────────────────────────────────────────────────────────────────────────┐
│  场景-支付方式兼容性配置                                                           │
├────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                    │
│  选择业务场景: [普通支付 ▼]                                                        │
│                                                                                    │
│  可用支付方式:                                                                     │
│  ┌────────────────────────────────────────────────────────────────────────────┐    │
│  │ ☑ JSAPI (微信公众号支付)                                                   │    │
│  │ ☑ NATIVE (扫码支付)                                                        │    │
│  │ ☑ H5 (H5支付)                                                              │    │
│  │ ☑ APP (APP支付)                                                            │    │
│  │ ☐ BANK_COLLECT (银行托收) - 此场景不适用                                   │    │
│  │ ☑ FACEPAY (当面付)                                                         │    │
│  └────────────────────────────────────────────────────────────────────────────┘    │
│                                                                                    │
│  配置说明: 取消勾选的支付方式在小区配置此场景时将不可选                            │
│                                                                                    │
│                                    [重置为默认]  [保存配置]                        │
└────────────────────────────────────────────────────────────────────────────────────┘
```

#### 2.4.4 业务规则

1. **兼容性检查**: 小区配置业务场景时,仅显示兼容的支付方式
2. **默认配置**: 系统预设常见场景的兼容性,管理员可修改
3. **变更影响**: 修改兼容性配置后,不影响已有小区配置,仅影响新配置

---

## 三、数据库设计

### 3.1 支付方式表 (payment_method)

#### 3.1.1 表说明
存储支付服务商支持的支付方式

#### 3.1.2 字段设计

| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|-------|------|------|-------|-------|------|
| id | BIGINT | - | 否 | 自增 | 主键ID |
| provider_id | BIGINT | - | 否 | - | 所属服务商ID,外键关联payment_provider.id |
| method_code | VARCHAR | 32 | 否 | - | 支付方式代码,如:JSAPI/NATIVE/H5/APP/BANK_COLLECT |
| method_name | VARCHAR | 100 | 否 | - | 支付方式名称,如:公众号支付/扫码支付/H5支付 |
| need_sign | TINYINT | 1 | 否 | 0 | 是否需要用户签约:0-否,1-是 |
| status | VARCHAR | 20 | 否 | enabled | 状态:enabled(已启用)/disabled(已停用) |
| sort_order | INT | - | 否 | 100 | 排序,数值越小优先级越高 |
| created_at | DATETIME | - | 否 | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | DATETIME | - | 否 | CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
| remark | VARCHAR | 500 | 是 | NULL | 备注说明 |

#### 3.1.3 索引设计

| 索引名 | 索引类型 | 字段 | 说明 |
|-------|---------|------|------|
| PRIMARY | 主键 | id | 主键索引 |
| uk_provider_method | 唯一索引 | provider_id, method_code | 同一服务商下支付方式代码唯一 |
| idx_provider_id | 普通索引 | provider_id | 服务商查询 |
| idx_status | 普通索引 | status | 状态查询 |
| idx_sort_order | 普通索引 | sort_order | 排序查询 |

#### 3.1.4 外键约束

```sql
ALTER TABLE payment_method
ADD CONSTRAINT fk_method_provider
FOREIGN KEY (provider_id) REFERENCES payment_provider(id)
ON DELETE RESTRICT ON UPDATE CASCADE;
```

#### 3.1.5 示例数据

```sql
INSERT INTO payment_method (provider_id, method_code, method_name, need_sign, status, sort_order, remark) VALUES
(1, 'JSAPI', '微信公众号支付', 0, 'enabled', 10, '用户在微信内H5页面支付'),
(1, 'NATIVE', '微信扫码支付', 0, 'enabled', 20, '生成二维码用户扫码支付'),
(1, 'H5', '微信H5支付', 0, 'enabled', 30, '在非微信浏览器H5页面支付'),
(1, 'APP', '微信APP支付', 0, 'enabled', 40, '在APP中调起微信支付'),
(2, 'FACEPAY', '支付宝当面付', 0, 'enabled', 10, '扫码支付或用户展示付款码'),
(2, 'H5', '支付宝H5支付', 0, 'enabled', 20, '在H5页面调起支付宝'),
(3, 'BANK_COLLECT', '易宝银行托收', 1, 'enabled', 10, '从用户签约银行卡自动扣款');
```

---

### 3.2 业务场景表 (payment_scene)

#### 3.2.1 表说明
存储支付服务商支持的业务场景

#### 3.2.2 字段设计

| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|-------|------|------|-------|-------|------|
| id | BIGINT | - | 否 | 自增 | 主键ID |
| provider_id | BIGINT | - | 否 | - | 所属服务商ID,外键关联payment_provider.id |
| scene_code | VARCHAR | 32 | 否 | - | 场景代码,如:NORMAL_PAYMENT/LIVING_PAYMENT/BANK_COLLECT/LICENSE_PLATE |
| scene_name | VARCHAR | 100 | 否 | - | 场景名称,如:普通支付/生活缴费/银行托收/牌照支付 |
| need_sign | TINYINT | 1 | 否 | 0 | 是否需要用户签约:0-否,1-是 |
| need_qualification | TINYINT | 1 | 否 | 0 | 是否需要行业资质:0-否,1-是 |
| supported_providers | VARCHAR | 255 | 是 | NULL | 支持的服务商列表,逗号分隔,如:WECHAT,ALIPAY,UNIONPAY |
| status | VARCHAR | 20 | 否 | enabled | 状态:enabled(已启用)/disabled(已停用) |
| created_at | DATETIME | - | 否 | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | DATETIME | - | 否 | CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
| remark | VARCHAR | 500 | 是 | NULL | 备注说明 |

#### 3.2.3 索引设计

| 索引名 | 索引类型 | 字段 | 说明 |
|-------|---------|------|------|
| PRIMARY | 主键 | id | 主键索引 |
| uk_provider_scene | 唯一索引 | provider_id, scene_code | 同一服务商下场景代码唯一 |
| idx_provider_id | 普通索引 | provider_id | 服务商查询 |
| idx_status | 普通索引 | status | 状态查询 |

#### 3.2.4 外键约束

```sql
ALTER TABLE payment_scene
ADD CONSTRAINT fk_scene_provider
FOREIGN KEY (provider_id) REFERENCES payment_provider(id)
ON DELETE RESTRICT ON UPDATE CASCADE;
```

#### 3.2.5 示例数据

```sql
INSERT INTO payment_scene (provider_id, scene_code, scene_name, need_sign, need_qualification, supported_providers, status, remark) VALUES
(1, 'NORMAL_PAYMENT', '微信普通支付', 0, 0, 'WECHAT,ALIPAY,UNIONPAY', 'enabled', '普通商户收款场景'),
(1, 'LIVING_PAYMENT', '微信生活缴费', 1, 1, 'WECHAT,ALIPAY,UNIONPAY', 'enabled', '物业费、水电费等,需要签约和资质,享受优惠费率'),
(1, 'LICENSE_PLATE', '微信牌照支付', 0, 0, 'WECHAT,ALIPAY,UNIONPAY', 'enabled', '车牌号支付场景'),
(2, 'NORMAL_PAYMENT', '支付宝普通支付', 0, 0, 'WECHAT,ALIPAY,UNIONPAY', 'enabled', '普通商户收款场景'),
(2, 'LIVING_PAYMENT', '支付宝生活缴费', 1, 1, 'WECHAT,ALIPAY,UNIONPAY', 'enabled', '物业费、水电费等,需要签约和资质'),
(2, 'LICENSE_PLATE', '支付宝牌照支付', 0, 0, 'WECHAT,ALIPAY,UNIONPAY', 'enabled', '车牌号支付场景'),
(3, 'BANK_COLLECT', '易宝银行托收', 1, 0, 'YEEPAY,UNIONPAY', 'enabled', '定期自动扣款,必须用户签约');
```

---

## 四、业务流程

### 4.1 支付方式配置流程

```
运营平台管理员
  │
  ├─ 1. 进入业务场景管理模块
  │
  ├─ 2. 点击"支付方式"Tab
  │
  ├─ 3. 点击"添加支付方式"
  │    ├─ 选择支付服务商
  │    ├─ 选择支付方式代码
  │    ├─ 填写支付方式名称
  │    ├─ 设置是否需要签约
  │    ├─ 设置排序
  │    └─ 点击"保存"
  │
  └─ 4. 完成配置
```

### 4.2 业务场景配置流程

```
运营平台管理员
  │
  ├─ 1. 进入业务场景管理模块
  │
  ├─ 2. 点击"业务场景"Tab
  │
  ├─ 3. 点击"添加业务场景"
  │    ├─ 选择支付服务商
  │    ├─ 选择场景代码
  │    ├─ 填写场景名称
  │    ├─ 设置是否需要签约
  │    ├─ 设置是否需要资质
  │    ├─ 选择支持的服务商列表
  │    └─ 点击"保存"
  │
  └─ 4. 完成配置
```

---

## 五、异常处理

### 5.1 配置异常

| 异常场景 | 处理方式 |
|---------|---------|
| 同一服务商下支付方式代码重复 | 提示"该支付方式已存在" |
| 同一服务商下场景代码重复 | 提示"该业务场景已存在" |
| 支付方式被使用时删除 | 提示"该支付方式已被使用,无法删除" |
| 业务场景被使用时删除 | 提示"该业务场景已被使用,无法删除" |

### 5.2 状态异常

| 异常场景 | 处理方式 |
|---------|---------|
| 停用正在使用的支付方式 | 提示"该支付方式正在被X个小区使用,确认停用?" |
| 停用正在使用的业务场景 | 提示"该业务场景正在被X个小区使用,确认停用?" |

---

## 六、数据约束

### 6.1 必填字段

**支付方式**
- 支付服务商ID
- 支付方式代码
- 支付方式名称
- 排序

**业务场景**
- 支付服务商ID
- 场景代码
- 场景名称

### 6.2 唯一性约束

| 表 | 唯一性约束 |
|----|-----------|
| payment_method | provider_id + method_code |
| payment_scene | provider_id + scene_code |

### 6.3 外键约束

| 表 | 外键字段 | 引用表 | 引用字段 | 删除规则 |
|----|---------|--------|---------|---------|
| payment_method | provider_id | payment_provider | id | RESTRICT |
| payment_scene | provider_id | payment_provider | id | RESTRICT |

---

## 七、安全要求

### 7.1 操作日志

需记录以下操作日志:
- 新增/编辑/删除支付方式
- 启用/停用支付方式
- 新增/编辑/删除业务场景
- 启用/停用业务场景

---

## 八、与其他模块的关系

### 8.1 依赖关系

本模块依赖以下模块:
- **运营平台服务商配置模块** - 引用 payment_provider (支付服务商信息)

### 8.2 与运营平台的关系说明

**设计说明:**

本模块的支付方式(payment_method)和业务场景(payment_scene)表只关联到服务商(provider_id)，**不关联运营平台(platform_id)**。这是一个有意的设计决策:

1. **全局配置性质**
   - 支付方式和业务场景是服务商能力的元数据定义
   - 例如"微信扫码支付"、"生活缴费场景"是服务商级别的能力描述
   - 这些配置对所有运营平台通用，不需要按运营平台区分

2. **运营平台级别的差异化配置**
   - 运营平台级别的差异化配置（如费率、结算周期等）在"运营平台服务商配置"模块中处理
   - 小区级别的具体支付方式选择在"小区支付配置"模块中处理

3. **配置继承关系**
   ```
   服务商 → 定义支付方式/业务场景（本模块）
      │
      └→ 运营平台 → 选择启用的服务商，配置费率等（运营平台服务商配置模块）
            │
            └→ 小区 → 选择具体的支付方式和业务场景（小区支付配置模块）
   ```

4. **数据流向示例**
   - 管理员在本模块为"微信服务商"配置支持"JSAPI、NATIVE、H5"三种支付方式
   - 运营平台A启用"微信服务商"
   - 小区X（属于运营平台A）配置时，可选择的支付方式为该服务商定义的支付方式列表
   - 若需要运营平台级别限制可选支付方式，需在"运营平台服务商配置"模块中扩展

**注意事项:**
- 如果未来需要支持不同运营平台有不同的支付方式选项，需要新增"运营平台支付方式配置"关联表
- 当前设计简化了配置流程，适用于各运营平台使用统一支付方式的场景

### 8.2 被依赖关系

本模块被以下模块依赖:

1. **小区支付配置模块**
   - 引用 payment_method (选择支付方式)
   - 引用 payment_scene (选择业务场景)

2. **用户签约管理模块**
   - 引用 payment_method (签约支付方式)

3. **支付交易管理模块**
   - 引用 payment_method (支付方式信息)
   - 引用 payment_scene (业务场景信息)

4. **支付报表模块**
   - 引用 payment_method (报表维度)

### 8.3 数据流向

```
运营平台服务商配置
  │
  └─ 提供服务商信息 → 本模块(业务场景管理)
                        │
                        ├─ 提供支付方式信息 → 小区支付配置
                        │
                        └─ 提供业务场景信息 → 小区支付配置
```

---

## 九、验收标准

### 9.1 功能验收

- [ ] 支持为服务商添加支付方式
- [ ] 支持编辑、删除支付方式
- [ ] 支持启用/停用支付方式
- [ ] 支持批量启用/停用支付方式
- [ ] 支付方式支持排序调整
- [ ] 支持为服务商添加业务场景
- [ ] 支持编辑、删除业务场景
- [ ] 支持启用/停用业务场景
- [ ] 被使用的配置禁止删除
- [ ] 所有操作记录日志

### 9.2 性能验收

- [ ] 列表页查询响应时间 ≤ 200ms
- [ ] 保存操作响应时间 ≤ 300ms

### 9.3 安全验收

- [ ] 关键操作记录审计日志
- [ ] 操作权限控制正确

---

## 十、FAQ

### 10.1 为什么要区分支付方式和业务场景?

**回答**: 这是两个不同的维度:
- **支付方式**: 技术实现层面的分类,如扫码、H5、APP等,决定了用户如何完成支付
- **业务场景**: 业务属性层面的分类,如生活缴费、普通商户等,决定了费率、结算周期等商务条款

一个订单可以同时指定支付方式和业务场景,例如:"使用微信扫码支付,走生活缴费场景"。

### 10.2 支付方式的排序有什么用?

**回答**: 排序用于两个场景:
1. 小区配置时的默认顺序展示
2. 当小区配置了多个支付方式时,作为默认优先级参考

### 10.3 如何判断某个支付方式是否需要签约?

**回答**: 通过 need_sign 字段判断:
- 银行托收: 必须签约 (need_sign = 1)
- 生活缴费场景: 建议签约,可享受优惠费率 (need_sign = 1)
- 普通支付: 不需要签约 (need_sign = 0)

### 10.4 业务场景的"支持的服务商"字段有什么用?

**回答**: supported_providers 字段用于标识该业务场景支持哪些服务商。例如:
- 生活缴费场景: 支持微信、支付宝、银联
- 银行托收场景: 支持易宝、银联

小区配置支付时,系统会根据此字段过滤可选的业务场景。

---

## 十一、变更记录

| 版本 | 日期 | 修改人 | 修改内容 |
|------|------|-------|---------|
| v1.1.1 | 2026-03-05 | 产品经理 | 从"支付渠道管理"模块拆分,创建独立的业务场景管理PRD |
| v1.2.0 | 2026-03-09 | 产品经理 | 1. 新增能力矩阵视图,以矩阵形式展示服务商支付能力<br>2. 新增场景-支付方式兼容性配置功能<br>3. 矩阵视图支持快速编辑、批量操作、导出功能<br>4. 新增配置向导功能 |
