Forzar que una suscripción a Discourse sea un pago único

En cuanto al plugin de Suscripciones de Discourse, ¿qué sucedería si cambiara algunas configuraciones directamente en Stripe? Por ejemplo, desde Discourse no es posible configurar un plan para un producto como un pago único; debe ser una suscripción de un día, una semana, un mes o un año. Sin embargo, si entro en stripe.com, puedo cambiar una suscripción existente a un pago único. ¿Puedo hacer esto? ¿Cómo afectaría este cambio al funcionamiento de ese plan en Discourse? ¿Se convertiría entonces en un pago único?

¡Definitivamente es posible! Si desmarcas la casilla de suscripción recurrente en la pantalla de creación del plan, se convertirá en un pago único.

Sin embargo, no puedes modificar los planes existentes una vez que han sido creados.

2 Me gusta

¡Tienes razón! Me faltó el cerebro. Lo que realmente quería preguntar es si es posible o no realizar un pago único que termine y no continúe indefinidamente. Por ejemplo, algo como un “pase diario”, donde pagas 5 dólares y te asignan a un grupo especial, y luego, digamos, al día siguiente, la suscripción termina y eres eliminado del grupo hasta que vuelvas a pagar. ¿Es esto posible?

Lamentablemente, no es así en este momento.

2 Me gusta

Hago algo similar en un plugin. Añado (de forma laxa) una acción al modelo user_group que, cuando se agrega un usuario al grupo de suscripción, realiza una acción y luego elimina al usuario del grupo. En tu caso, harías que cuando la suscripción agregara al usuario al grupo one-off-weeklong, se:

  • agregue al usuario al grupo weeklong, que otorga permisos para ciertas categorías;
  • agregue un trabajo que elimine al usuario del grupo weeklong cuando termine la semana;
  • agregue un campo personalizado de usuario con la fecha en que comenzó la semana, para que puedas eliminarlo en caso de algún desastre con Redis;
  • elimine al usuario del grupo one-off-weeklong.

Si estás interesado en esto, puedes contactarme o publicar en Marketplace.

3 Me gusta

Pero eso es una tontería. En su lugar, simplemente añade una devolución de llamada para la suscripción (si es una suscripción) o el cliente (si es un pago único). Cliente es un nombre un tanto inapropiado. Tiene el ID de cliente de Stripe y el ID de producto de Stripe. Así que haz algo como

add_model_callback(DiscourseSubscriptions::Subscription, :after_save) do
      Rails.logger.warn("Ahora tengo una suscripción #{self.external_id} para #{self.customer_id}")
      # haz cosas
end

  add_model_callback(DiscourseSubscriptions::Customer, :after_save) do
    Rails.logger.warn("Cliente #{self.product_id} para #{self.user_id}")
    # haz más cosas
end
1 me gusta

Hola, ¿has resuelto este problema?

¿Puede proporcionar más orientación? como implementar esta característica. No estoy familiarizado con Rails… ¡gracias!

Creo que esa es mi mejor respuesta gratuita.

3 Me gusta

Lo he resuelto modificando el plugin de suscripción de Discourse. Gracias.

Pero he descubierto que no puedo eliminar productos ni siquiera usando el plugin de suscripción de Discourse original. ¿Alguna idea?

No necesitas eliminarlos. No hacen daño. Son necesarios como registro de las cosas que has vendido. Deberías poder eliminarlos desde la consola de Stripe.

2 Me gusta

Stripe tampoco permite eliminar productos, pero se pueden desactivar/archivar.

Dicen:

2 Me gusta

No sé si esto es algo que todavía quieres lograr, o si has encontrado una manera de hacerlo. Parece que no es algo que esté integrado para automatizarse con Discourse, pero puede haber alguna otra forma de hacerlo. Parece algo parecido a un acuerdo de cafetería donde tienes que comprar una bebida nueva cada día para poder sentarte en una de sus mesas.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.