dunas

Como funciona

O que roda no seu app, o que fica no seu banco e o que vai para o provedor.

O dunas é uma biblioteca. Ele roda dentro do seu servidor, guarda tudo no seu Postgres e conversa direto com os provedores de pagamento. Não existe um serviço de cobrança no meio, nem uma conta para criar.

O que fica onde

No seu servidor

Seu código

Os planos, num arquivo TypeScript versionado com o app. O dunas roda aqui, como uma dependência.

No seu servidor

Seu Postgres

Clientes, assinaturas, cobranças e o uso de cada feature, em tabelas dunas_*.

Fora

O provedor

Só o pagamento. Gera a cobrança, recebe o dinheiro e avisa quando foi pago.

Como os direitos de cada cliente estão no seu banco, perguntar se alguém pode usar uma feature é uma consulta local. Não depende do provedor estar no ar.

Uma assinatura, do começo ao fim

  1. O cliente escolhe o Pro na sua página de preços.
  2. O dunas cria uma assinatura aguardando pagamento e pede a cobrança a um provedor.
  3. O cliente paga.
  4. O provedor avisa por webhook. O dunas confere a assinatura do webhook e relê a cobrança no provedor antes de mudar qualquer coisa.
  5. A assinatura fica ativa, o cliente ganha o que o Pro inclui e você recebe o evento subscription.activated.

Daí em diante, o dunas cria a cobrança de cada novo período sozinho. Veja Assinaturas.

A rota

O dunas atende numa rota só do seu app, por padrão /api/dunas. Ela recebe três tipos de chamada:

Quem chamaPara quê
O navegadorVer planos, assinar, cancelar e acompanhar uma cobrança
Os provedoresAvisar que uma cobrança mudou
O seu cronRodar as renovações

O navegador nunca diz quem é o cliente. Cada requisição passa pela sua função identify, que lê a sessão do seu app.

Nesta página