-
Notifications
You must be signed in to change notification settings - Fork 45
付费计划
这个页面描述的是正在开发中的 v0.9 版本实现的特征。
付费计划(Plan
)定义了用户可以使用哪些元件,有哪些限制,如何进行计费。
付费计划的定义位于 config.coffee
中的 plans
属性,plans
的每一个属性描述一个付费计划:
plans:
empty:
name: 'Empty Plan'
available_components: {}
billing_trigger: {}
shadowsocks:
name: 'ShadowSocks'
join_freely: true
available_components:
shadowsocks:
limit: 1
resource_limit: {}
billing_trigger:
'shadowsocks.traffic':
bucket: 100 * 1000 * 1000
price: 0.06
付费计划的 name
和 description
提供了对付费计划的描述,将会显示在用户界面上:
name: 'ShadowSocks'
description: 'A fast tunnel proxy'
如果需要多语言,则需要使用 t_name
和 t_description
:
t_name: 'plugins.shadowsocks.name'
t_description: 'description'
join_freely
描述了这个付费计划是否可以自由地被用户加入和退出,默认为 true
. 如果被设定为 false
, 那么只有管理员可以将用户加入或移出这个付费计划。
available_components
描述了这个付费计划中包含哪些 元件,键名即为元件的名字,值是一个对象:
limit: 1
coworker_limit: 0
default: (account) ->
return username: account.username
-
limit
允许创建多少个该元件,默认无限制。 -
coworker_limit
允许用户将该元件共享给其他多少个人,默认无限制 -
default
默认创建一个该元件;值是一个函数,接收一个 account 对象,返回用于创建该元件的信息,具体取决于相关的元件;默认不创建。
resource_limit
描述了该套餐对于用户的 资源限制,键名为资源的名字,值是一个对象:
resource_limit:
cpu:
cycle: 3600 * 1000
limit: 60
即表示限制用户一小时(3600 * 1000
)中最多只能使用一分钟(60
)的 cpu
时间。
根据不同的资源,limit
的单位可能不同。
billing_trigger
描述了如何进行计费,键名为触发器的名字,值是一个对象,具体取值取决于触发器。
大部分触发器由插件实现,名字为插件的名字加上资源的名字,如 plugin.resource
这样的形式。
以 shadowsocks.traffic
举例,这个触发器由 shadowsocks 插件触发,表示用户使用的流量,如:
'shadowsocks.traffic':
bucket: 100 * 1000 * 1000
price: 0.06
即表示每 100MB 流量(100 * 1000 * 1000
)进行一次金额为 0.06
元的扣费。
目前 RootPanel 仅内置了一个触发器 time
:
time:
interval: 24 * 3600 * 1000
price: 10 / 30
prepaid: true
-
interval
表示扣费的间隔,上例中为每天 -
price
表示每次扣费的金额,上例中为每 30 天 10 元 -
prepaid
表示是否为预付费,默认为 false
RootPanel 的全部文档和 WIKI 使用 CC-SA 授权,其中的代码示例不保留版权。