Stripe: cómo gestionar la suscripción con un plan gratuito y no se requiere tarjeta de crédito al momento de registrarse

Comenzamos a implementar Stripe enRedsmin (Uno de nuestro proyecto) y creo que nos hemos perdido algo. Así es como funciona:

Para usar nuestro producto, el usuario debe seleccionar un plan (gratis, s, m, xl, xxl ...), luego ingresar su nombre de usuario / contraseña y es bueno para una prueba gratuita de 30 días. Cuando el usuario envía el formulario, nuestro servidor llama a Stripe.cliente_crear con el plan especificado y sin tarjeta de crédito (porque queremos ofrecer 30 días gratis sin necesidad de tarjeta de crédito) y actualizamos el modelo de usuario de nuestro lado con los datos devueltos.customer_id ysubscription_id.

Configuramos un webhook para recibir eventos de banda, de modo que después de 30 días nuestro webhookdebería recibir uncustomer.subscription.updated evento con unobject.status == active. Estoy en lo cierto?

Sin embargo, dado que no especificamos una tarjeta asociada para el usuario en el momento de registrarse,debería recibir rápidamente después de otrocustomer.subscription.updated evento conobject.status == unpaid ¿Correcto? Luego, de nuestro lado, desactivamos la cuenta de usuario y la forzamos a ir a nuestra página de selección de planes.

A partir de ese momento, el usuario puede seleccionar el plan gratuito o uno de nuestro plan premium:

#Escenario 1 Si el usuario selecciona el plan gratuito, simplemente reactivamos su cuenta por nuestro lado y no hacemos nada más porque configuramos el plan gratuito en franja a un costo de 0 $.¿Implementamos el proceso correcto con nuestro plan gratuito? ¿Hay mejores maneras?

# Escenario 2 Si el usuario selecciona un plan premium, lo redireccionamos a un formulario de tarjeta de crédito, que luego se enviará a Stripe, y actualizamos la cuenta del cliente de Stripe con el token de la tarjeta temporal.¿Qué debemos hacer a continuación?:

¿Debemos esperar a que Stripe nos envíe un evento? Si es así, ¿qué evento?customer.subscription.updated? charge.succeeded? ¿Cuál será el valor deobject.status entonces ?¿Deberíamos reactivar directamente la cuenta de usuario de nuestro lado y esperar una confirmación de Stripe? Si es así, ¿cuál sería el nombre del evento y los datos que debemos esperar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta