Possível bug: Um usuário é adicionado ao grupo do Discourse quando uma assinatura começa, mas o usuário não é removido quando a assinatura é cancelada.
Eu cancelei via Discourse (logado como o usuário) e cancelei via site da Stripe, mas em nenhum dos casos o usuário de teste foi removido do grupo. Talvez seja relevante que eu ainda esteja no modo de teste da Stripe.
Estou colocando isso na categoria de “bug”, mas se estiver perdendo alguma coisa, sinta-se à vontade para movê-lo para outro lugar.
Eu olhei os logs na Stripe para os webhooks e todos eles eram 422 ERR (“Nenhuma assinatura encontrada correspondendo à assinatura esperada para o payload”).
Eu não tinha inserido o discourse subscriptions webhook secret no Discourse!
Existem dois códigos na página /test/webhooks/ da Stripe. Primeiro tentei o no canto superior direito (começando com we_), mas ainda recebi um erro 422. Então tentei o chamado “Signing secret” (começando com whsec_, presumivelmente para segredo do webhook - parece óbvio agora) e funcionou!
Como observação, o cancelamento pelo usuário (em oposição ao administrador) apenas cancela a renovação automática, portanto, não deve remover o usuário do grupo imediatamente. Descobri isso examinando as respostas na página de webhooks e experimentando: veja Discourse Subscriptions - clarify "Cancel at end of cycle" - #2 by Jonathan5.