Abbonamenti con tabella dei prezzi - risposta di cliente non trovato

Ciao a tutti! Ho un problema e ci sto lavorando da qualche giorno senza successo, quindi spero che qualcuno qui possa aiutarmi :slight_smile:

Discourse 3.4.0.beta1-dev
Subscriptions 2.8.1 - f0b4984
Installazione Docker su VM Linux

Ho installato e attivato il plugin subscriptions, e funziona la maggior parte delle volte quando si utilizza la tabella dei prezzi integrata (occasionalmente un utente non viene aggiunto ai gruppi dopo un abbonamento, ma questo è un problema separato, immagino).

Tuttavia, ho davvero bisogno di utilizzare la tabella dei prezzi e il checkout di Stripe per l’esperienza utente familiare e la fiducia che offrono. A tal fine ho configurato tutto per i webhook, con tutti i segreti ecc. configurati (attualmente utilizzo la modalità di test, quindi chiavi e segreti in modalità di test).

Riesco ad andare con successo alla pagina di abbonamento, a passare attraverso il flusso di checkout dalla tabella dei prezzi e a completare il checkout con le carte di test.

Tuttavia, questo non crea alcun abbonamento in Discourse e nessun cambiamento nei gruppi dell’utente, e guardando i webhook nella dashboard di Stripe vedo che stanno ricevendo una risposta 422 con il corpo:

{
  "errors": [
    "customer not found"
  ]
}

Ho provato con alcuni utenti diversi e il risultato è sempre lo stesso.

Avendo controllato nel database, non vedo i clienti indicati nel webhook di Stripe nella tabella discourse_subscriptions_customers, né un abbonamento corrispondente nella tabella discourse_subscriptions_subscriptions - il che immagino potrebbe essere previsto dato che la chiamata webhook non viene mai elaborata?

A titolo informativo, ho verificato che le chiamate webhook di Stripe possano avere successo in generale - se ho disattivato l’impostazione “usa la tabella dei prezzi di Stripe”, e passo attraverso il checkout integrato per creare un abbonamento, allora tutto va bene - e se poi cancello l’abbonamento da Stripe, il webhook customer.subscription.deleted arriva senza problemi.

Spero di aver fatto solo qualcosa di sciocco e che non sia impostato correttamente, ma sto davvero faticando a capire cosa devo fare per farlo funzionare.

Grazie in anticipo!
Ross

1 Mi Piace

Mi dispiace che tu stia riscontrando problemi, ma ti ringrazio per aver sollevato la questione. Speriamo di riuscire a capire cosa sta succedendo. La prima domanda che ho è: i prodotti che hai selezionato per la tabella dei prezzi sono stati creati all’interno di Discourse o sono stati creati all’interno di Stripe?

Sto riscontrando questo errore anche nell’ambiente di produzione che ho configurato, ma non localmente, quindi è piuttosto difficile da eseguire il debug. Ci sto comunque lavorando!

Grazie per la risposta :slight_smile:

Ho provato in entrambi i modi, inizialmente avevo configurato i prodotti in Stripe e poi ho trovato discussioni qui che suggerivano che dovessero essere creati all’interno di Discourse, quindi sono passato a fare quello invece. Tuttavia, vedo ancora lo stesso problema.

Sto ipotizzando (e mi scuso se è errato) che il collegamento ai gruppi sia guidato dai metadati del prodotto? Vedo questo qui sotto:

(Il group_name varia a seconda del livello di prezzo, che è quello che mi aspetterei in base a come ho impostato le cose in Discourse).

Grazie per aver esaminato la questione, fammi sapere se c’è qualcos’altro che posso fare per aiutare :slight_smile:

Ho creato una correzione per la risposta “cliente non trovato” con la tabella dei prezzi. Se aggiorni il tuo plugin delle sottoscrizioni e riprovi, dovrebbe funzionare ora.

2 Mi Piace

Mi scuso per il ritardo nel risponderti e ti ringrazio ancora per averci dato un’occhiata :slight_smile:

Ho appena aggiornato tutto e fatto un rapido test, e vedo ancora la stessa risposta (cioè, cliente non trovato) alle webhook di Stripe.

Pensi che dovrei creare una tabella dei prezzi / un set di prodotti completamente nuovi e testare con quelli, per escludere eventuali problemi che potrebbero essere rimasti da test precedenti (ho usato un nuovo utente per questo test, ma i prodotti sono quelli che c’erano da prima).

Puoi confermare di nuovo cosa hai per l’hash del commit sotto il numero di versione nella pagina /admin/plugins?

E si tratta di un abbonamento o di un acquisto una tantum con la tabella dei prezzi?

Ho aggiunto una nuova impostazione per il plugin di abbonamento per il debug. Si chiama discourse_subscriptions_enable_verbose_logging. Una volta abilitata, puoi visitare /logs e riprovare il processo di checkout per vedere se vedi qualche output. Sentiti libero di mandarmi degli screenshot in un messaggio privato e potrò aiutarti ulteriormente a risolvere i problemi.

Certamente, nessun problema. L’hash del commit che ho è lo stesso del tuo screenshot, f1b9c96 :slight_smile:

Questo è per un abbonamento, con la tabella dei prezzi.

Ok, fantastico, grazie. Proverò ad abilitare quell’impostazione e a dare un’occhiata ai log :slight_smile:

Grazie ancora per il tuo aiuto :slight_smile:

2 Mi Piace