El usuario no puede volver a comprar un producto de suscripción después de cancelarlo

Parece que tu endpoint de webhook podría estar configurado incorrectamente. Cuando finaliza el período de suscripción, Stripe envía un webhook que el plugin utiliza para eliminar la membresía del grupo y retirar al usuario como cliente existente de ese producto (lo que permite al usuario volver a comprarlo).

Debes asegurarte de configurarlo según lo indicado en el hilo original aquí: Discourse Subscriptions

Una forma de verificarlo desde tu servidor:

./launcher enter app
rails c
u = User.find_by_username(<username>)
c = DiscourseSubscriptions::Customer.where(user_id: u.id)
subscription = DiscourseSubscriptions::Subscription.where(customer_id: c.customer_id)

Asegúrate de reemplazar <username> con el nombre de usuario real del usuario.

Si subscription devuelve [], hay otro problema en curso. Pero si devuelve un valor, eso probablemente confirma la falta del webhook.

Para eliminar la entrada DiscourseSubscriptions::Subscription para que el usuario pueda volver a comprar el producto:

Asegúrate de que subscription tenga un solo valor ejecutando subscription.count. Si el valor devuelto es mayor que 1, tendrás que investigar un poco más para asegurarte de que estás eliminando la instancia de suscripción correcta. Si eliminas la incorrecta, los datos de tus suscripciones quedarán en un estado inconsistente y probablemente generarán comportamientos extraños.

Una vez confirmado que solo hay una suscripción, puedes ejecutar:

subscription.destroy_all

Ten en cuenta que subscription es el valor devuelto por el conjunto inicial de consultas que ejecutamos en la consola de Rails.

¡Esperamos que esto te ayude!