为了帮助商户理解订单与支付在交易过程中的行为,以下介绍订单有效期、支付有效期、订单状态以及异常标签的设计逻辑。
订单有效期由商户在后台设置,或在创建订单时通过 API 的 expires_in 字段定义。
它的含义是:
用户必须在订单有效期内完成支付,否则订单将被视为过期或者部分付款。
- 控制用户支付时长
- 控制库存锁定时长
- 防止长时间未支付导致库存占用
- 仅作为订单状态变化的判断依据 (pending → expired) ,订单终态后状态将不再变化(终态包括:expired、paid、partial_paid)。
- 用户在订单过期后的付款仍会被异常标签识别为“晚到支付”(late payment),并更新confirming_amount和confirmed_amount。
👉 订单有效期仅作用于订单(Order)。
支付有效期指 每个支付单(Payment)所生成的支付地址/二维码的有效使用时限。 默认有效期为 1 小时。
它的含义是:
用户需要在支付有效期内完成付款。支付单过期后,用户可重新生成新的支付单并获得新的报价和支付地址。
- 用户停留超时 → 支付地址过期 → 生成新的支付单
- 链上价格波动 → 用户需要新的报价 → 生成新的支付单
👉 支付有效期仅作用于支付单(Payment)。
订单状态由:是否过期、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 | 过期,但用户已支付部分金额。商户可选择部分发货、联系用户补款或退款等处理方式。 |
链上支付可能出现多种异常情况,因此 Infini 提供 异常标签 exception_tags 用于帮助商户进行客服处理、财务对账及风控判断。
⚠️ 异常标签不影响订单状态,可同时存在多个。
| 标签名称 | 说明 |
|---|---|
| late | 用户在订单过期后才付款。区别于 expired(未付款即过期)。 |
- 客服跟进(补款、退款、币种纠正等)
- 风控处理(block 风险资产)
- 财务对账
- 配合订单