商品服务期限
服务起始时间
订单在用户按照供应商要求付完款后就会运行start
的Lua脚本。系统默认设置会在Lua脚本运行完后创建记录用户服务的UserService
,并且会设置UserService
的服务状态为ServiceRunning
, 意味着服务开始计费并且正在运行。UserService
的创建时间即为服务的开始时间。
若服务供应商想要避免执行默认的服务状态逻辑,供应商可以在Lua脚本中使用SystemUtils
中的preventDefault()
函数。该函数会让创建的UserService
的初始状态为ServicePending
,意味着服务没有开始计费。此时用户需要按照供应商提供的服务说明来使用服务资源。
比如,当用户按照供应商说明,通过HTTP API部署了他的应用。当部署成功后,服务商的资源节点会发个请求给服务商的SDK节点来开始UserService
的服务计费, 并且UserService
状态变为ServiceRunning
。
服务终止时间
服务供应商的SDK节点会每小时自动检查UserService
的时间期限:当计算的服务结束时间小于等于当前时间,系统会更改UserService
状态为ServiceDone
并运行stop
Lua脚本来结束服务资源。
服务资源不足引起的服务终止
当用户按照服务供应商说明进行开启服务,碰到供应商的资源节点资源不足时,资源节点会向服务商的SDK节点发起退款请求。SDK节点会标志UserService
为ServiceAbort
状态,服务终止。
用户发起的服务终止
当用户想要提前结束订单时间时,用户可以通过用户cli客户端发起退款请求(若用户购买的服务允许退款)。用户向供应商SDK节点发起请求后,系统会计算剩余时间价值并根据vsysTokenExchangeRate
汇率系数将剩余的订单价值转换成供应商定义的token数量。该token数量将会发回给用户用于下次的购买兑现。