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:
-
Faça login no SolusVM 2.
-
Acesse Recursos Computacionais > Planos.
-
Você pode especificar os valores do token ao editar um plano existente ou criar um novo:
-
Para editar um plano existente, clique no ícone
na linha do plano.
-
Para criar um novo plano, clique em Adicionar Plano.
-
Especifique o preço por hora e o preço mensal em tokens em “Tokens por hora” e “Tokens por mês” respectivamente.
-
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”.
- 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:
- Faça login no SolusVM 2.
- Vá para Configurações > Área do Usuário e desmarque a caixa de seleção “Ativar Registro”.
- 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:
|
`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:
|
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.
- Faça login no SolusVM 2.
- Vá para Configurações > Integração de Faturamento.
- Em “Tipo”, selecione “Faturamento Personalizado”.
- Especifique a URL do endpoint
GetTokenPricing
no lado do sistema de faturamento, por exemplohttps://www.mybilling.com/solusio/api/
- (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.
- 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.