Ir para o conteúdo

Integração de Faturamento Personalizado

Este tópico explicará como configurar a integração do faturamento pós-pago com qualquer sistema de faturamento exceto WHMCS (por exemplo, Blesta, Hostbill, Ubersmith ou outros).

Passo 1 – Defina sua taxa de conversão entre tokens e moedas

SolusVM 2 oferece faturamento por hora e mensal. Decida quanto custa um token em dinheiro real (nas moedas desejadas).

Note

Os tokens podem ser apenas números inteiros.

Recomendamos que você prepare uma tabela de conversão detalhada, por exemplo:

Tokens Preço do token em USD Preço do token em EUR
1 US$ 0,00100 0,00091€
10 US$ 0,01000 0,00910€
100 US$ 0,10000 0,09100€
1.000 US$ 1,00000 0,91000€
10.000 US$ 10,00000 9,10000€

Passo 2 – Calcule seus preços por hora e mensal

Pré-requisitos: Vamos supor que você já adicionou planos. Se não, é hora de fazê-lo.

Agora você precisa decidir quanto cobrar por seus planos. Cada plano no SolusVM 2 pode ter o preço por hora e o preço mensal em tokens:

  • “Tokens por hora” é o preço em tokens pela utilização de um recurso por hora.

Por exemplo, se você iniciar um servidor e encerrá-lo após cinco minutos, o usuário do servidor tem que pagar o preço por uma hora.

  • “Tokens por mês” é o preço em tokens pela utilização de um recurso durante aproximadamente o mês inteiro.

Os meses têm durações diferentes, mas o preço mensal é fixo. Para conseguir isso, você define o preço mensal calculando o limite mensal. Vejamos um exemplo.

Temos o preço por hora de 7 tokens (equivalente a US$ 0,007/h). Todo o mês de 31 dias custará o seguinte:

7 tokens × 24 horas × 31 dias = 7 × 744 horas = 5.208 tokens (igual a US$ 5,21)

As pessoas gostam de números redondos. Podemos deduzir 208 tokens (US$ 0,21) e obter o preço de 5.000 tokens (US$ 5,00). Este será o nosso limite mensal e o preço mensal ao mesmo tempo. SolusVM 2 escolherá qual preço (por hora ou mensal) cobrar dependendo do preço mensal.

Por exemplo, um usuário executou um servidor por 700 horas, o que custa 4.900 tokens. São menos de 5.000 tokens do limite mensal, então o usuário será cobrado por hora. No mês seguinte, o usuário executou um servidor por 730 horas, que custa 5.110 tokens. São mais de 5.000 tokens do limite mensal, portanto o usuário será cobrado mensalmente (US$ 5,00).

Recomendamos que você calcule seus preços por hora e por mês antes de defini-los no SolusVM 2. Abaixo você pode ver um exemplo de como calculamos os preços usando a tabela de conversão mostrada na etapa 1.

Planos Tokens por hora Tokens agregados por mês (tokens por hora × 24 horas × 31 dias) Preço agregado por mês em dólares americanos Tokens por mês (como preço fixo) Preço por mês em dólares americanos se “tokens por mês” for aplicado
1 núcleo, 1 GiB de RAM 7 5.208 US$ 5,21 5.000 US$ 5,00
1 núcleo, 2 GiB de RAM 14 10.416 US$ 10,42 10.000 US$ 10,00
2 núcleos, 2 GiB de RAM 21 15.624 US$ 15,62 15.000 US$ 15,00
2 núcleos, 4 GiB de RAM 28 20.832 US$ 20,83 20.000 US$ 20,00

Note

No exemplo acima, arredondamos os preços mensais (as duas últimas colunas). É mais prático para o cliente e pode servir como desconto mensal. Depende de você fazer o mesmo ou não.

Passo 3 – Definir preços em tokens para planos no SolusVM 2

Durante a etapa anterior, você criou a tabela de preços detalhada. Agora você precisa definir os preços por hora e mensal (a segunda e a quinta colunas da tabela de preços, respectivamente) para planos no SolusVM 2:

  1. Faça login no SolusVM 2.

  2. Acesse Recursos Computacionais > Planos.

  1. Você pode especificar os valores do token ao editar um plano existente ou criar um novo:

  2. Para editar um plano existente, clique no ícone na linha do plano.

  3. Para criar um novo plano, clique em Adicionar Plano.

  4. Especifique o preço por hora e o preço mensal em tokens em “Tokens por hora” e “Tokens por mês” respectivamente.

  5. Se você estiver criando um plano, também preencha os campos obrigatórios.

!!! note

     Se você definir “Tokens por mês” como “0”, apenas o faturamento por hora estará disponível.
     Se você definir “Tokens por hora” como “0”, mas especificar o valor para “Tokens (por mês)”,
     então o faturamento por hora não estará disponível.
     Aos clientes será sempre cobrado o preço fixo mensal definido por “Tokens por mês”.
  1. Clique em Salvar.

Passo 4 – Desabilitar cadastro na área de usuário do SolusVM 2

O sistema de faturamento configurado com SolusVM 2 deve ser o banco de dados principal dos usuários do SolusVM 2. Somente o banco de dados do sistema de faturamento deve controlar quais usuários têm ou não permissão para criar servidores.

Porém, SolusVM 2 possui uma parte de sua interface chamada “área do usuário” onde os usuários criam servidores. É possível ignorar o banco de dados do sistema de faturamento criando usuários diretamente na área do usuário. Para evitar isso, você precisa desabilitar o registro na área do usuário:

  1. Faça login no SolusVM 2.
  2. Vá para Configurações > Área do Usuário e desmarque a caixa de seleção “Ativar Registro”.
  3. Clique em Salvar.

Você desativou o registro na área do usuário. O banco de dados do sistema de faturamento é agora o principal banco de dados para usuários do SolusVM 2.

Passo 5 – Crie grupos de limites

Os grupos de limites ajudam a definir limites para o número de servidores que um usuário específico pode criar e manter em estado de execução. Recomendamos que você crie grupos de limites e escolha o grupo de limites padrão para novos usuários. Aprenda como fazer isso.

Etapa 6 – Configurar o endpoint da API no lado do sistema de faturamento

Agora você precisa configurar o endpoint GetTokenPricing no lado do sistema de faturamento. Você pode configurá-lo facilmente em uma linguagem de codificação de sua escolha.

Você precisa desse endpoint para que o SolusVM 2 possa mostrar preços aos clientes.

Note

No momento, você precisa configurar apenas o endpoint GetTokenPricing. Mas podemos estender a lista de endpoints de API no futuro.

O endpoint GetTokenPricing possui os seguintes parâmetros de solicitação e resposta:

Parâmetros de solicitação

Parâmetro Tipo Descrição Necessário
`token` string Token de autorização Nenhum
`userid` int O ID do usuário no sistema de faturamento Sim

Parâmetros de resposta

Parâmetro Tipo Descrição
`base_token_unit_cost` flutuante O preço de um token antes de quaisquer descontos e/ou impostos.
`user_token_unit_cost` flutuante O preço total e final de um token, incluindo descontos e impostos.
`currency` array A matriz que consiste nos parâmetros de formatação de moeda: código ISO, prefixo, sufixo, número de decimais, milhares e separador de decimais. Exemplo:
"currency": { "code": "GBP", "display_prefix": "\u00a3", "display_suffix": " GBP", "thousands_separator": ",", "decimals_separator": ".", "decimals_per_month": 2, "decimals_per_hour": 4 }
`discounts` array A matriz de descontos aplicados que consiste no nome, na descrição e no multiplicador. Exemplo: ``` "discounts": [ { "name": "Desconto Especial para Grupos de Clientes", "description": "5% de Desconto Recorrente", "multipler": 0.95 } ```
`taxes` array O conjunto de informações fiscais incluindo o tipo de imposto (composto ou não) e as taxas (uma etiqueta e taxa). Exemplo:
"impostos": { "compound": true, "impostos": [ { "label": "Imposto Municipal", "rate": 6 }, { "label": "Imposto Estadual", "rate": 2 } ] }

Quando o SolusVM 2 precisa exibir um preço para um cliente, SolusVM 2 envia uma solicitação de API com o ID do usuário para o endpoint GetTokenPricing:

curl -X POST "https://www.mybilling.com/solusio/api/"
\ -H "Accept: application/json"
\ -H "Content-Type: application/x-www-form-urlencoded"
\ -d "token=xxxxxxx&action=GetTokenPricing&userid=1"

O sistema de faturamento então envia uma resposta de API com informações relacionadas ao preço, por exemplo:

{
 "base_token_unit_cost": 1.34,
 "user_token_unit_cost": 1.0812,
 "currency": {
         "code": "GBP",
         "display_prefix": "\u00a3",
         "display_suffix": " GBP",
         "thousands_separator": ",",
         "decimals_separator": ".",
         "decimals_per_month": 2,
         "decimals_per_hour": 4
 },
 "discounts": [
         {
                 "name": "Special Client Group Discount",
                 "description": "5% Recurring Discount",
                 "multipler": 0.95
         }
 ],
 "taxes": {
         "compound": true,
         "rates": [
                     {
                             "label": "City Tax",
                             "rate": 6
                     },
                     {
                             "label": "State Tax",
                             "rate": 2
                     }
                 ]
         }
}

user_token_unit_cost na resposta é o coeficiente que reflete todos os impostos, descontos e ofertas especiais de um determinado usuário. SolusVM 2 então multiplica user_token_unit_cost pelo preço do plano em tokens, obtém o preço real na moeda (libra esterlina em nosso exemplo), e mostra esse preço ao usuário.

Passo 7 – Habilitar integração de faturamento no SolusVM 2

Você configurou o endpoint da API no lado do sistema de faturamento. Agora vamos usá-lo.

  1. Faça login no SolusVM 2.
  2. Vá para Configurações > Integração de Faturamento.
  3. Em “Tipo”, selecione “Faturamento Personalizado”.
  4. Especifique a URL do endpoint GetTokenPricing no lado do sistema de faturamento, por exemplo https://www.mybilling.com/solusio/api/
  5. (Opcional) O sistema de cobrança pode exigir tokens para autorização. Nesse caso, cole o token de autorização do sistema de faturamento. Nesse caso, cole o token de autorização do sistema de faturamento.
  6. Clique em Salvar.

Passo 8 – Integrar o gerenciamento de usuários com SolusVM 2 no lado do sistema de faturamento

O sistema de faturamento deve gerenciar usuários no SolusVM 2 quando necessário.

Para conseguir isso, você precisa configurar a integração de gerenciamento de usuários com SolusVM 2 no lado do sistema de faturamento. Ao fazer isso, o sistema de faturamento poderá criar, editar, excluir, bloquear e suspender usuários no SolusVM 2 usando o endpoint da API SolusVM 2.

Note

Ao integrar o gerenciamento de usuários, certifique-se de que o sistema de faturamento envie billing_user_id para SolusVM 2. SolusVM 2 precisa ter billing_user_id para corresponder aos usuários armazenados no sistema de faturamento com aqueles armazenados no SolusVM 2.

Passo 9 – Configurar login automático no SolusVM 2

O sistema de cobrança redireciona os usuários para a área de usuário do SolusVM 2. Para ajudar os usuários a entrar no SolusVM 2 sem precisar fazer login pela segunda vez, configurar o login automático. Para fazer isso, você precisa criar um token de acesso para um usuário primeiro. Em seguida, use um link de login que contenha o token para autorizar o usuário nos scripts de integração:

GET https://www.solus-user-ui.com/auth/by_token/{access_token}

Passo 10 - Configurar a geração de faturas no sistema de faturamento

Como última etapa, você precisa configurar o sistema de faturamento para enviar solicitações de API para o endpoint da API SolusVM 2 /usage.

Ao final do ciclo de faturamento, o sistema de faturamento gera e envia faturas aos usuários. Para calcular os encargos, o sistema de faturamento deve receber as estatísticas dos recursos consumidos enviando solicitações de API para o endpoint /usage.

Parabéns! Você concluiu a integração do seu sistema de faturamento com SolusVM 2. Esperamos que o dinheiro já esteja entrando.