Em relação ao plugin Discourse Subscriptions, o que aconteceria se eu alterasse algumas configurações diretamente no Stripe? Por exemplo, pelo Discourse, não é possível configurar um plano de produto como pagamento único. Ele precisa ser uma assinatura diária, semanal, mensal ou anual. Mas, se eu acessar o stripe.com, posso alterar uma assinatura existente para um pagamento único. Posso fazer isso? Como essa alteração afetaria o funcionamento desse plano no Discourse? Ele se tornaria, então, um pagamento único?
Definitivamente é possível! Se você desmarcar a caixa de seleção de recorrência na tela de criação do plano, ele será um pagamento único.
No entanto, você não pode alterar planos existentes depois de criá-los.
Você tem razão! Eu tive um lapsos de memória. O que eu realmente queria perguntar é se é possível ou não ter um pagamento único que termine, e não continue indefinidamente. Por exemplo, algo como um “passe diário”, onde você paga US$ 5 e é adicionado a um grupo especial, e depois, digamos, um dia, a assinatura termina e você é removido do grupo até pagar novamente. Isso é possível?
Infelizmente, não neste momento.
Faço algo assim em um plugin. Eu (de forma flexível) adiciono ao modelo user_group uma ação que, quando um usuário é adicionado ao grupo de assinatura, executa uma ação e, em seguida, remove o usuário do grupo. No seu caso, você faria com que, ao adicionar o usuário ao grupo one-off-weeklong, a assinatura:
- adicionasse o usuário ao grupo
weeklong, que concede permissão a determinadas categorias; - adicionasse um trabalho que removeria o usuário do grupo
weeklongao final da semana; - adicionasse um campo personalizado ao usuário com a data de início da semana, para que você pudesse removê-lo caso ocorra algum desastre no Redis;
- removesse o usuário do grupo
one-off-weeklong.
Se você tiver interesse nisso, pode entrar em contato comigo ou postar em Marketplace.
Mas isso é bobo. Em vez disso, basta adicionar um callback para a assinatura (se for uma assinatura) ou cliente (se for um pagamento único). Cliente é um nome um tanto inadequado. Ele tem o ID do cliente do Stripe e o ID do produto do Stripe. Então faça algo como
add_model_callback(DiscourseSubscriptions::Subscription, :after_save) do
Rails.logger.warn("Agora temos uma assinatura #{self.external_id} para #{self.customer_id}")
# fazer coisas
end
add_model_callback(DiscourseSubscriptions::Customer, :after_save) do
Rails.logger.warn("Cliente #{self.product_id} para #{self.user_id}")
# fazer mais coisas
end
Olá, você resolveu este problema?
Você pode fornecer mais orientações? Como implementar este recurso. Não estou familiarizado com Rails.. obrigado!
Acho que essa é a minha melhor resposta gratuita.
Você não precisa excluí-los. Eles não prejudicam nada. Eles são necessários como um registro das coisas que você vendeu. Você deve ser capaz de excluí-los do console do Stripe.
Não sei se isso ainda é algo que você quer alcançar, ou se encontrou uma maneira de fazer isso? Parece que não é algo que seja integrado para ser automatizado com o Discourse, mas pode haver alguma outra maneira de fazer isso. Parece meio como um acordo de cafeteria onde você tem que comprar uma nova bebida todos os dias para poder sentar em uma de suas mesas.


