## 5. 业务核心概念

为了帮助商户理解订单与支付在交易过程中的行为，以下介绍订单有效期、支付有效期、订单状态以及异常标签的设计逻辑。

### 5.1 订单有效期（Order Expiration）

订单有效期由商户在后台设置，或在创建订单时通过 API 的 expires_in 字段定义。

它的含义是：

**用户必须在订单有效期内完成支付，否则订单将被视为过期或者部分付款。**

#### 对商户的意义

- 控制用户支付时长
- 控制库存锁定时长
- 防止长时间未支付导致库存占用


#### 对 Infini 的意义

- 仅作为订单状态变化的判断依据 (pending → expired) ，订单终态后状态将不再变化（终态包括：expired、paid、partial_paid）。
- 用户在订单过期后的付款仍会被异常标签识别为“晚到支付”（late payment），并更新confirming_amount和confirmed_amount。


👉 **订单有效期仅作用于订单（Order）。**

### 5.2 支付有效期（Payment Expiration）

支付有效期指 **每个支付单（Payment）所生成的支付地址/二维码的有效使用时限**。
默认有效期为 **1 小时**。

它的含义是：

**用户需要在支付有效期内完成付款。支付单过期后，用户可重新生成新的支付单并获得新的报价和支付地址。**

#### 场景示例

- 用户停留超时 → 支付地址过期 → 生成新的支付单
- 链上价格波动 → 用户需要新的报价 → 生成新的支付单


👉 **支付有效期仅作用于支付单（Payment）。**

### 5.3 订单状态说明

订单状态由：是否过期、amount_confirming、amount_confirmed 三个关键字段决定。

| **状态（Status）** | **是否过期** | **amount_confirming** | **amount_confirmed** | **业务含义** |
|  --- | --- | --- | --- | --- |
| **pending** | 否 | = 0 | = 0 | 初始状态，等待用户付款。 |
| **processing** | 否 | > 0 | = 0 | 用户已付款，但链上交易仍在确认中。 |
| **processing** | 否 | - | > 0 且 < order_amount | 已确认部分金额，但不足订单金额。 |
| **paid** | 否 | - | ≥ order_amount | 全额付款成功。 |
| **expired** | 是 | = 0 | = 0 | 超时未付款，订单关闭。 |
| **partial_paid** | 是 | - | > 0 且 < order_amount | 过期，但用户已支付部分金额。商户可选择部分发货、联系用户补款或退款等处理方式。 |


### 5.4 异常标签（Exception Tags）

链上支付可能出现多种异常情况，因此 Infini 提供 **异常标签 exception_tags** 用于帮助商户进行客服处理、财务对账及风控判断。

⚠️ **异常标签不影响订单状态，可同时存在多个。**

#### 异常标签说明

| **标签名称** | **说明** |
|  --- | --- |
| **late** | 用户在订单过期后才付款。区别于 expired（未付款即过期）。 |


### 5.5 异常标签用途

- 客服跟进（补款、退款、币种纠正等）
- 风控处理（block 风险资产）
- 财务对账
- 配合订单