apyb / tarefas

Repositório de tarefas da Associação Python Brasil
6 stars 0 forks source link

Validar uso do Stripe como alternativa para o site de associados #564

Closed naanadr closed 2 weeks ago

naanadr commented 7 months ago

Hoje temos o site de associados apenas para que as pessoas consigam assinar a associação, mas o site é mantido pela diretoria e tem um custo relativamente alto de hospedagem (#63), além de precisar de atualizações e desenvolvimento de novas features.

A Stripe parece ser uma boa alternativa para substituir o site de associados, algumas features que chamaram a nossa atenção:

Issues relacionadas:

Caso essa validação se mostre positiva, novas atividades serão realizadas, como:

naanadr commented 7 months ago

Taxa do Stripe:

Taxa do PagBank

rougeth commented 7 months ago

@naanadr alguns pontos e perguntas:

tiidadavena commented 6 months ago

@naanadr alguns pontos e perguntas:

  • Importante notar que o alto custo de hospedagem hoje se dá pela má gestão do provedor que usamos (Heroku), e não pela infraestrutura necessária para manter o site. A impressão que tenho é que o Heroku está em modo KTLO e que o Salesforce não tem planos a longo prazo para o serviço.
  • Outra questão é que o site é muito simples, novas features seriam ótimas (consigo pensar em várias), porém não vejo nenhuma como essencial ao longo prazo. A última versão LTS do Django (4.2) terá suporte até 2026, e a próxima, 5.2 a ser lançada em 04/2025, terá suporte até 2028. Manter as bibliotecas atualizadas poderia ser um sprint organizado pela APyB e feito pela comunidade.
  • Hoje qualquer pessoa consegue ver quem são as pessoas associadas a APyB. Isso ainda poderia ser feito usando a Stripe? Quais outras features do site perderíamos em caso de mudança?
  • Como a APyB manteria o histórico de seus associados?
  • Stripe trabalha com associações?
  • Stripe aceita PIX apenas para empresas convidadas. Quantos associados usam PIX para pagar a anuidade?

Acredito que um levantamento rápido com a coumidade já fornceria uma visão inicial acerca do último questionamento.

Não entendi no que o Stripe poderia interferir na listagem dos usuários, já que esse processo é do backend.

Concordo 100% com a migração para outra ferramenta de hosting - sugiro fly.io ou render.com, e até o Netlify poderia fazer isso - e talvez migrar o DB para o Supabase.

naanadr commented 6 months ago

Olá @rougeth a Jules já trouxe alguns pontos, mas complementando:

Importante notar que o alto custo de hospedagem hoje se dá pela má gestão do provedor que usamos (Heroku), e não pela infraestrutura necessária para manter o site. A impressão que tenho é que o Heroku está em modo KTLO e que o Salesforce não tem planos a longo prazo para o serviço.

Obrigada por ter deixado mais claro o que foi levantado brevemente na descrição da issue #63. Irei fazer a migração de provedor nessa outra issue, essa daqui eu criei apenas para validar se o Stripe seria viável como meio de pagamento, já que aceita cartões internacionais.

Outra questão é que o site é muito simples, novas features seriam ótimas (consigo pensar em várias), porém não vejo nenhuma como essencial ao longo prazo. A última versão LTS do Django (4.2) terá suporte até 2026, e a próxima, 5.2 a ser lançada em 04/2025, terá suporte até 2028. Manter as bibliotecas atualizadas poderia ser um sprint organizado pela APyB e feito pela comunidade.

Entendo o seu ponto. Mas atualmente estamos pensando em futuramente agregar tudo em um único site. Não tendo mais a wiki e o associados em locais diferentes.

Hoje qualquer pessoa consegue ver quem são as pessoas associadas a APyB. Isso ainda poderia ser feito usando a Stripe? Quais outras features do site perderíamos em caso de mudança?

Como Jules falou anteriormente, conseguimos pegar a lista de usuários pela API do Stripe e os admins conseguem exportar a lista de usuários ativos facilmente pelo dashboard da Stripe. Além disso, a diretoria atual não vê essa funcionalidade como prioritária, e no futuro caso seja realizado a migração, podemos disponibilizar uma página com mais detalhes de quantidade de usuários ativos e o nome deles.

Como a APyB manteria o histórico de seus associados?

Tas falando do banco postgres? Se sim, por enquanto não encontramos como poderíamos fazer a migração dele para o Stripe. O que pensamos em fazer, seria mudar o link de pagamento no site do associados, para as pessoas começarem a pagar a membresia por lá e depois quando tiverem todos cadastrados na Stripe, ai talvez fossemos matar o banco postgres. Dessa forma, a migração de servidor irá acontecer de toda forma.

Se não era isso que tu estava falando, poderia explicar melhor essa pergunta? 😄

Stripe trabalha com associações?

Aparentemente eles oferecem desconto das taxas para organizações sem fim lucrativos (aqui.)

Stripe aceita PIX apenas para empresas convidadas. Quantos associados usam PIX para pagar a anuidade?

Sim verdade, mas aceitam boleto. Estamos tentando levantar esses dados com exatidão, mas aparentemente desde o começo do ano tivemos 12 pessoas pagando em pix a anuidade.

naanadr commented 6 months ago

Página teste do associe-se disponível na url: https://apyb.python.org.br/pr-preview/pr-21/associados/associe-se/

Estamos fazendo alguns testes para entender melhor como funciona o sistema, e notamos que:

  1. A pessoa usuária consegue acompanhar a sua assinatura pela página de faturamento do Stripe. Para fazer login nessa página, é preciso informar um e-mail válido que já foi cadastrado na apyb, e acessar o link de acesso que será enviado por e-mail;
  2. Se uma pessoa tentar assinar a associação passando um e-mail já cadastrado anteriormente, o Stripe detecta e redireciona a pessoa para a tela de login;
  3. A pessoa consegue fazer mudança de planos, e o próprio sistema realiza o gerenciamento de valor que precisa ser cobrado de um plano para outro. No caso, uma pessoa estudante, consegue ir para a modalidade efetivo pagando a diferença dos valores. Agora se for o caminho inverso, a Stripe adiciona crédito na carteira do cliente referente a diferença. Mais informações sobre a cobrança proporcional aqui;
  4. Caso a pessoa chegue a concelar a assinatura, ela ainda consegue acessar a página de faturamento e assinar novamente a associação;
  5. É possível exportar a lista de assinantes ativos, e nessa listagem conseguimos saber qual o tipo de assinatura;
  6. O Stripe oferece a opção de programar transferência de repasse para a conta do BB.

Por enquanto, esses foram os pontos que consegui levantar em alguns testes realizados.

rougeth commented 5 months ago

Testei a página de teste, seria ótimo ter a forma de pagamento na própria wiki! Algumas ideias que surgiram (ignora se vocês já pensaram/discutiram):

Respondendo aos itens anteriores:

O que pensamos em fazer, seria mudar o link de pagamento no site do associados, para as pessoas começarem a pagar a membresia por lá e depois quando tiverem todos cadastrados na Stripe, ai talvez fossemos matar o banco postgres.

Acho que a migração vai ser "fácil". Como não temos pagamento recorrente, na hora de renovar, é só a APyB enviar o link do novo provedor.

naanadr commented 4 months ago

Após a confirmação de inscrição, os webhooks da stripe poderiam acionar uma action no github responsável por adicionar a mudança num .csv/.json/db que a APyB mantém (coisa simples, atualiza um arquivo texto no S3 por exemplo). Dessa forma seria possível manter histórico que já temos hoje.

Eu tinha pensado em algo parecido, mas não tinha parado para olhar com calma como que funciona o webhook. O que eu tinha visto era que dava para exportar a lista de assinantes pela UI do Stripe, e até ter esse update automático, conseguiríamos validar quem é assinante e quem não é. Depois de fazer a migração do site do associados do heroku para outro lugar, talvez consigamos continuar mantendo um db.

Também poderíamos ter outra automação que atualiza uma página na wiki, adicionando a nova pessoa associada. Hoje essa informação é pública, seria interessante manter.

Essa parte de exportar a lista de associados, está bem no backlog e não enxergamos como uma feature prioritária. Mas a ideia de utilizar o github action + o webhook parece interessante também. O que tínhamos pensado em fazer, era disponibilizar uma página com o Streamlit, mostrando mais dados como "quantidade de assinantes ativos por ano" e bla bla bla.

Acho que a migração vai ser "fácil". Como não temos pagamento recorrente, na hora de renovar, é só a APyB enviar o link do novo provedor.

Também estou com essa esperança 🙏

naanadr commented 4 months ago

Atualizei a descrição da issue com as subtarefas que estarei executando.