订单与计费
Novaix 提供完整的订单和计费系统,覆盖了从下单、支付到续费、退款的完整流程。
订单类型
| 类型 | 说明 |
|---|---|
| 新购 | 购买新实例 |
| 续费 | 延长现有实例的到期时间 |
| 升级 | 升级实例的配置(CPU、内存、磁盘等) |
| 附加 IP | 为现有实例购买额外 IP |
| 流量包 | 为实例购买额外的流量包 |
订单状态
| 状态 | 说明 |
|---|---|
| 待支付 | 订单已创建,等待用户支付 |
| 已支付 | 支付成功,系统开始处理 |
| 已取消 | 用户或系统取消了订单 |
| 已退款 | 订单已退款 |
计费周期
每个套餐可以配置多个计费周期:
- 按小时:按使用时长实时扣费,适合临时或弹性需求
- 月付:按月计费
- 季付:按季度计费(3 个月)
- 年付:按年计费(12 个月)
用户可以在下单时选择计费周期,续费时也可以选择不同的周期。
按小时计费
选择按小时计费的实例,系统会每小时自动从用户账户余额中扣费。
- 运行中扣费:只有实例处于运行状态时才会产生费用。停止或冻结的实例不扣费
- 自动扣费:系统每小时执行一次扣费任务,根据实例的运行时长计算费用
- 余额不足:如果用户余额不足以支付按小时费用,系统会自动冻结实例,直到用户充值后手动解冻
- 补扣机制:如果因系统故障等原因导致扣费延迟,恢复后会一次性补扣欠费(最多补扣 30 天)
TIP
按小时计费适合开发测试、临时演示等短期使用场景。对于长期使用的用户,月付或年付通常更划算。
订单管理
管理员可以在管理面板中:
- 查看所有订单及其状态
- 手动创建订单(如需为用户开通实例)
- 删除待支付或已取消的订单(已产生支付记录或财务流水的订单不可删除)
- 批量取消未支付订单
- 处理退款请求(审批通过或驳回),支持多选批量退款和批量拒绝
- 导出订单列表到 Excel
首期免费开通
自 0.4.9 起,管理员可以为用户免费开通一个计费周期,适用于活动赠送、故障补偿等场景。
在管理面板的「订单管理」页面,点击「新购下单」,选择用户、套餐、节点和镜像,开启「首期免费」,填写赠送原因后点击「免费开通」。支持月付、季付和年付,不支持小时计费。
- 本次费用:免除所选周期的订单金额,不扣用户余额,也不产生代理扣款或返佣。库存和节点资源仍按正常开通规则检查
- 订单记录:保留套餐原价和首期减免金额,赠送原因显示在订单备注中,用户也可以查看
- 后续续费:按系统配置的续费价格策略收费,不会因为首期免费而将续费价格设为零
- 赠送期限制:赠送期内暂不支持升降级,提前续费或转移实例不会解除限制;原赠送期结束后恢复正常升降级
- 退款:首期免费订单没有实付金额,不支持退款。后续正常支付的续费订单仍按原退款规则处理
开通后请在任务列表中查看结果。订单创建或支付成功不代表实例已经完成开通。
退款
用户可以在用户面板中对已支付的订单申请退款,管理员在管理面板中审批。
退款行为会根据订单类型有所不同:
| 订单类型 | 退款后的处理 |
|---|---|
| 新购订单 | 实例被自动删除(异步执行),套餐库存回滚 +1 |
| 续费订单 | 实例不会删除,但到期时间回退到续费前的值 |
| 升级订单 | 实例配置回滚到升级前的套餐规格 |
| 附加 IP 订单 | 需要管理员手动移除 IP |
| 流量包订单 | 不支持退款 |
WARNING
- 退款金额退回到用户的账户余额(钱包),不会退回到原支付渠道(支付宝、微信等)
- 新购订单退款后实例会被自动删除,此操作不可恢复,请确认后再审批
- 如果该订单产生了代理佣金,退款时佣金会被自动冲正(从代理账户扣回)
- 退款申请被管理员拒绝后不可重复提交,如有异议请通过工单联系客服
退款策略
管理员可以配置退款条件,限制用户申请退款的范围。退款策略支持全局默认值和按套餐单独覆盖两种粒度。
在 系统设置 → 退款策略 中配置全局默认值:
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 允许退款 | 是否允许用户申请退款 | 开启 |
| 退款时间窗口 | 购买后多少小时内允许退款,0 表示不限制 | 0(不限制) |
| 退款流量阈值 | 已用流量超过此阈值(GB)则不允许退款,0 表示不限制 | 0(不限制) |
| 退款次数上限 | 同一用户在同一套餐下最多可退款的次数,0 表示不限制 | 0(不限制) |
套餐可以单独覆盖全局设置。在套餐编辑页面的「退款策略」区域,每个配置项都可以选择「跟随全局设置」或填写自定义值。
以上条件为「与」关系——用户申请退款时,必须同时满足所有条件才可提交。不符合条件时,订单详情页会直接展示不可退款的原因,而不是显示退款按钮。管理员直接退款不受策略限制。
TIP
如果你希望某个促销套餐不可退款,只需在该套餐的退款策略中将「是否允许退款」设为「禁止」即可,不影响其他套餐。
订单生命周期
下图展示了一个新购订单从创建到最终处理的完整流程:
自动化处理
- 支付成功后自动开通:用户支付完成后,系统自动创建实例并分配资源
- 到期提醒:系统会在实例到期前通过邮件提醒用户续费(需要配置邮件服务)
- 自动续费:实例到期前 1 天,如果用户余额充足,系统会自动从余额扣费续费;余额不足则发送续费失败通知。用户可在实例详情页的「详细信息」区域自行开启或关闭自动续费
- 到期冻结:实例到期后,根据系统设置中的「暂停宽限天数」(默认 0 天,即到期立即冻结),系统自动冻结实例
- 过期删除:实例到期后超过「删除宽限天数」(默认 7 天)且处于冻结状态时自动删除
- 到期预警:系统会在实例到期前 3 天发送邮件通知用户续费
TIP
到期通知等功能依赖邮件服务。未配置邮件渠道时,系统不会发送通知邮件,用户可能因为不知道到期而导致实例被冻结或删除。自动续费本身不依赖邮件,由定时任务自动从余额扣款执行。
WARNING
到期处理由定时任务每小时执行一次。这意味着实例到期后不会精确到分钟立刻冻结,最长可能有约 1 小时的延迟。
容易忽略的问题
- 支付后实例未自动创建:通常是支付回调未正确到达。请参考支付配置中关于回调地址的说明。
- 订单金额为 0:使用了全额抵扣的优惠券,或者管理员后台代客下单的免费订单。用户前台下单 0 元订单仍需通过余额支付确认;管理员后台下单默认自动支付。
- 用户重复下单:如果用户在短时间内多次点击购买,可能会生成多个待支付订单。未支付的订单不会占用资源,用户只需支付其中一个即可,其余可以手动取消。
