API de assinaturas
O aplicativo cliente trabalha com assinaturas por meio de três endpoints: criar uma assinatura, cancelar uma assinatura e obter a lista de assinaturas ativas do usuário atual.
Todos os endpoints são executados em nome do usuário autenticado. A assinatura sempre fica vinculada ao token usado na solicitação.
Criação de assinatura
Cria uma nova assinatura para o usuário atual com o marcador especificado.
O comportamento depende do tipo de conta de pagamento vinculada à assinatura nas configurações do módulo (abre em uma nova aba):
stripe,midtrans: o registro da assinatura é criado e a resposta traz um link de pagamento. A assinatura fica ativa depois que o provedor processa a cobrança com sucesso.custom: a assinatura é criada e já passa a ser considerada ativa. Nenhum link de pagamento é retornado; o administrador registra o pagamento manualmente pelo cartão do usuário (abre em uma nova aba).
Cancelamento de assinatura
Cancela imediatamente a assinatura ativa do usuário.
O comportamento depende do tipo de conta de pagamento:
stripe,midtrans: a assinatura é cancelada pela API do provedor. As cobranças automáticas são interrompidas e o status da assinatura muda paracanceled.custom: o cancelamento pela API não está disponível. Somente o administrador pode cancelar essas assinaturas, pelo cartão do usuário (abre em uma nova aba).
Tentar cancelar uma assinatura custom pela API retorna um erro. Isso é intencional: assinaturas manuais são gerenciadas pelo administrador, porque os pagamentos delas acontecem fora do sistema.
Obtenção de assinaturas ativas
Retorna um array com os marcadores das assinaturas ativas do usuário atual.
Uma assinatura é considerada ativa quando:
- Foi criada com sucesso.
- O período atual ainda não terminou.
- Não foi cancelada (
canceled).
Quando uma assinatura expira ou é cancelada, o marcador dela sai da lista automaticamente. No cliente, você pode usar esse endpoint para verificar o acesso ao conteúdo: se o marcador da assinatura necessária estiver no array, o acesso é concedido.