Skip to content
jysperm edited this page Jul 15, 2015 · 3 revisions

这个页面描述的是正在开发中的 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

付费计划的 namedescription 提供了对付费计划的描述,将会显示在用户界面上:

name: 'ShadowSocks'
description: 'A fast tunnel proxy'

如果需要多语言,则需要使用 t_namet_description:

t_name: 'plugins.shadowsocks.name'
t_description: 'description'

Join Freely

join_freely 描述了这个付费计划是否可以自由地被用户加入和退出,默认为 true. 如果被设定为 false, 那么只有管理员可以将用户加入或移出这个付费计划。

Available Components

available_components 描述了这个付费计划中包含哪些 元件,键名即为元件的名字,值是一个对象:

limit: 1
coworker_limit: 0
default: (account) ->
  return username: account.username
  • limit 允许创建多少个该元件,默认无限制。
  • coworker_limit 允许用户将该元件共享给其他多少个人,默认无限制
  • default 默认创建一个该元件;值是一个函数,接收一个 account 对象,返回用于创建该元件的信息,具体取决于相关的元件;默认不创建。

Resource Limit

resource_limit 描述了该套餐对于用户的 资源限制,键名为资源的名字,值是一个对象:

resource_limit:
  cpu:
    cycle: 3600 * 1000
    limit: 60

即表示限制用户一小时(3600 * 1000)中最多只能使用一分钟(60)的 cpu 时间。
根据不同的资源,limit 的单位可能不同。

Billing Trigger

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
Clone this wiki locally