Continuando a discussão de Assinaturas do Discourse - mudança de preço - como cancelar a renovação automática em vez da assinatura completa:
Solicitação de recurso: Seria bom se o usuário pudesse optar por cancelar a assinatura no final do ciclo, em vez de poder cancelá-la apenas imediatamente.
Eu vi isso na documentação do Stripe, sob o título “Cancelar no final do ciclo”:
Se você preferir cancelar a assinatura no final do período de faturamento atual (ou seja, pela duração do tempo que o cliente já pagou), atualize a assinatura com um valor de cancel_at_period_end como true:
…
Você pode reativar assinaturas agendadas para cancelamento (com o parâmetro cancel_at_period_end) atualizando cancel_at_period_end para false. Você pode reativar a assinatura a qualquer momento até o final do período.
1 curtida
Acontece que o usuário pode fazer o que eu pedi (mudei "permitir" para "esclarecer" no título agora)… então aqui estão duas coisas novas, mas relacionadas…
Solicitações de recursos: A redação padrão deve deixar claros os dois tipos de cancelamento. A interface de administração deve ter a mesma coluna "Status" da interface do usuário.
Aqui estão alguns detalhes…
Parece que "cancelar" em Assinaturas do Discourse significa duas coisas diferentes dependendo de quem o faz! Para o usuário, ele apenas cancela a renovação automática; para o administrador, ele cancela toda a assinatura imediatamente.
-
Se o usuário clicar no ícone de lixeira em u/.../billing/subscriptions, a solicitação é "Tem certeza de que deseja cancelar esta assinatura?"
Escolher Sim aciona o webhook customer.subscription.updated.
Duas partes notáveis da resposta são \"cancel_at_period_end\": true e \"status\": \"active\". A página de assinatura do usuário ainda permanece "Status: Ativo", mas para "Renova" agora declara "cancelado". O usuário permanece no grupo de assinantes.
Irritantemente, a interface de administração não indica mais que a renovação automática foi cancelada – ela apenas tem "Status: ativo".
-
Se o administrador clicar em "cancelar" em /admin/plugins/discourse-subscriptions/subscriptions, a solicitação novamente é "Tem certeza de que deseja cancelar esta assinatura?" (também pergunta sobre o reembolso).
Escolher Sim aciona o webhook customer.subscription.deleted.
A resposta inclui \"status\": \"canceled\". A assinatura é excluída em todos os lugares e o usuário é removido do grupo de assinantes.