Skip to content

Pagamentos

Vinicius Aguiar edited this page Nov 12, 2023 · 20 revisions

Fluxos

Documentação dos fluxos de pagamentos

Nesse contexto vamos aderir as nomenclaturas:

  • Conta para a conta criada na API
  • Cliente para a conta criada no Stripe

Listar produtos e preços

GRAPHQL allStripePrice

Criar uma conta

  1. Criar a conta
    1. GRAPHQL createUpdateAccount
  2. Criar o cliente
    1. GRAPHQL createStripeCustomer

Criar uma inscrição

  1. Criar uma inscrição vinculada a um preço
    1. GRAPHQL createStripeSubscription
  2. Confirmar a inscrição pela API do Stripe

Cancelar a inscrição

GRAPHQL deleteStripeSubscription

Adicionar colaboradores à inscrição

GRAPHQL createStripeSubscriptionCustomer

Remover colaboradores da inscrição

GRAPHQL deleteStripeSubscriptionCustomer

Referências

Stripe: Build a subscription integration

Apêndice

Criar uma conta

sequenceDiagram
    participant Frontend
    participant Backend
    participant Stripe
    
    Frontend->>Backend: Criar conta
    Note right of Frontend: GRAPHQL createUpdateAccount
    Backend->>Backend: Criar conta
    Backend-->>Frontend: Retornar conta
    loop Cliente não criado
        Frontend->>Backend: Criar cliente
        Note right of Frontend: GRAPHQL createStripeCustomer
        Backend->>Stripe: Criar cliente
        Stripe-->>Backend: Retornar cliente se existir
        Backend-->>Backend: Salvar cliente se existir
        Backend-->>Frontend: Retornar cliente se existir
    end
Loading

Criar uma inscrição

sequenceDiagram
    participant Frontend
    participant Backend
    participant Stripe

    loop Inscrição não criada
        Frontend->>Backend: Criar inscrição
        Note right of Frontend: GRAPHQL createStripeSubscription
        Backend->>Stripe: Criar inscrição
        Stripe-->>Backend: Retornar inscrição se existir
        Backend->>Backend: Salvar inscrição se existir
        Backend-->>Frontend: Retornar inscrição se existir
    end
    Frontend->>Stripe: Confirmar o pagamento
    Note right of Frontend: stripe.confirmPayment
    Stripe-->>Frontend: Retornar a confirmação se existir
Loading