L'utente non può riacquistare un prodotto in abbonamento dopo averlo annullato

Sembra che il tuo endpoint webhook possa essere configurato in modo errato. Quando il periodo di abbonamento scade, Stripe invia un webhook che il plugin utilizza per rimuovere l’iscrizione al gruppo ed escludere l’utente dalla lista dei clienti esistenti per quel prodotto (il che consente all’utente di acquistare nuovamente).

Dovrai assicurarti che sia configurato secondo le indicazioni del post originale qui: Discourse Subscriptions

Un modo per verificare dal tuo server:

./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)

Ricordati di sostituire <username> con il nome utente reale dell’utente.

Se subscription restituisce [], c’è un altro problema in corso. Ma se restituisce un valore, ciò conferma probabilmente la mancanza del webhook.

Per eliminare la voce DiscourseSubscriptions::Subscription in modo che l’utente possa acquistare nuovamente il prodotto:

Assicurati che subscription contenga un solo valore eseguendo subscription.count. Se il valore restituito è maggiore di 1, dovrai fare un po’ di indagini in più per assicurarti di eliminare l’istanza di abbonamento corretta. Se elimini quella sbagliata, i dati degli abbonamenti rimarranno in uno stato inconsistente e potrebbero causare comportamenti strani.

Una volta confermato che esiste un solo abbonamento, puoi eseguire:

subscription.destroy_all

Tieni presente che subscription è il valore restituito dall’insieme iniziale di query eseguite nella console Rails.

Spero che questo ti sia d’aiuto!