Considere também que as assinaturas são gerenciadas pelo Stripe. Portanto, você teria que implementar toda a lógica sobre o cancelamento de assinaturas, expiração de assinaturas e assim por diante.
Eu fiz isso com o plugin de assinaturas Monero. É muito trabalho. Você está basicamente construindo um mini Stripe.