跳转到内容

12. 异常付款自动退款

Infini 可对符合规则的少付、多付和晚付进行自动退款。开启后,符合条件的加密货币付款会在用户确认退款地址后发起链上退款,并通过交易级 Webhook 通知商户最终结果。

自动退款默认关闭。关闭时,正常已支付订单的聚合与结算行为保持不变。

12.1 适用场景

场景行为
少付(Underpayment)订单到期后,无法完成订单的已付金额可能被自动退款。
多付(Overpayment)超过订单应付金额的部分可能被自动退款(受 Gas 与报价缓冲规则约束)。
晚付(Late payment)订单进入终态后收到的付款,若仍在确认期内,可能被自动退款。

自动退款不会改变:

  • 正常已支付订单的付款聚合规则
  • 正常成功订单的商户结算时机或金额
  • 本流程之外的错币 / 异常补单处理

12.2 商户配置

在商户后台的 ** 异常处理 ** 中配置:

配置项说明
仅结算已付清订单总开关。未选中(默认):沿用原结算行为,不自动退款。选中:符合条件的少付 / 多付 / 晚付进入自动退款流程。
退款地址确认期限订单过期后,付款人提交退款地址的天数。范围 30–90,默认 30
少付提醒是否向付款人发送少付提醒邮件。

配置修改会立即作用于未完成订单;已创建退款单的确认截止时间仍以建单时写入值为准。

12.3 退款地址确认

Infini 会向付款人邮箱发送一次性认领链接,用于提交同网络、同币种的退款地址。

  • 确认期限从原订单 expires_at 起算。
  • 邮件重试不会延长截止时间。

若付款人在截止前未提交有效地址,退款会变为 unclaimed(未认领),相应金额转入商户结算,而不再链上退回。

12.4 金额、Gas 与结算说明

  • 退款按原支付币种计算。
  • 网络级固定 Gas(以 USD/USDC 配置,并按付款到账汇率快照换算为原币)从退款本金中扣除;付款人实际到账为 received_amount = refund_amount - gas_fee
  • 若聚合后退款价值不高于网络 Gas 阈值,Infini 不会创建自动退款记录,也不会发送 auto_refund.* Webhook,金额直接结算给商户。
  • 进行中或已完成的自动退款本金不会进入该付款的正常商户结算。
  • 未认领退款在确认期结束后转入商户结算。

12.5 商户接入清单

  1. Payment Exceptions 中开启自动退款。
  2. 设置 refund_confirmation_period_days(30–90)。
  3. 为 Webhook 端点订阅:
    • auto_refund.completed
    • auto_refund.unclaimed
  4. 使用 X-Webhook-Event-Id / payload 中的 event_id 做幂等处理。
  5. 运营排查可结合商户后台订单详情;自动化集成以 Webhook payload 为准。

事件字段与示例如 Webhook