## 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 风险资产) - 财务对账 - 配合订单