Olá,
Estou testando este plugin para uso futuro na minha instância e encontrei um problema.
Minha conta do Stripe é nova e não foi verificada, o que significa que está usando dados de teste que posso limpar no painel do Stripe > Desenvolvedores.
O problema é que limpar os dados no Stripe não exclui os mesmos dados na instância do fórum. Isso pode resultar em uma falha na página de Faturamento > Pagamento de um usuário.
Passos para reproduzir
- Crie um plano de assinatura
- Assine um usuário ao plano. O Stripe atribuirá a ele um
customer_id, comocus_abcd1234567890 - Limpe os dados no painel do Stripe
- Tente abrir novamente a página de Faturamento do usuário. Isso resultará em uma falha ao carregar
/s/user/payment, com a seguinte mensagem de erro no console do navegador:
{\"errors\":[\"No such customer: 'cus_abcd1234567890'\"]}
Após explorar o banco de dados da minha instância, encontrei dados anteriores de várias limpezas que fiz nas seguintes tabelas:
discourse_subscriptions_customers: causa falha na página de faturamento do usuáriodiscourse_subscriptions_productsdiscourse_subscriptions_subscriptions
As duas últimas tabelas não parecem causar falha. No entanto, elas ainda contêm dados expirados.
Excluir manualmente a(s) linha(s) problemática(s) na tabela discourse_subscriptions_customers corrige a falha do usuário. Mas fazer isso via consulta SQL é complicado e perigoso, especialmente para usuários inexperientes.
Vale notar também que esse problema não ocorre ao excluir manualmente as informações do usuário no painel do Stripe. O Stripe mantém informações arquivadas sobre ele e o marca como “excluído permanentemente”.
Soluções propostas
Se possível, implemente uma maneira para que o Stripe informe ao Discourse que os dados de teste foram limpos, e que os dados nessas tabelas devem ser excluídos.
Ou,
Nas opções do plugin, crie um botão para “limpar os dados de teste” com um grande rótulo de aviso vermelho para garantir que o administrador saiba o que está fazendo.