Come permettere al cliente di cambiare i dati della carta di credito

Un problema con cui ho lottato è come permettere al cliente di cambiare le informazioni della propria carta di credito. L’ultima volta che è successo, ho finito per cancellare il loro abbonamento e ho chiesto loro di crearne uno nuovo. Finalmente, ho scoperto come generare un link a una pagina Stripe che permetterà loro di vedere la cronologia delle fatture, aggiungere un metodo di pagamento e aggiornare le informazioni di fatturazione (indirizzo email).

Vorrei inviare una PR al plugin delle sottoscrizioni per aggiungere questo link, ma al momento non ho le due ore che mi servirebbero, quindi ecco come farlo manualmente in Rails:

user = User.find_by_username('=USERNAME=');
sub=DiscourseSubscriptions::Customer.where(user_id: user.id).first;

Stripe.api_key = SiteSetting.discourse_subscriptions_secret_key
session=Stripe::BillingPortal::Session.create({
  customer: sub.customer_id,
  return_url: '=SITE_URL=/my/billing/subscriptions',
});
puts session.url

Ecco la documentazione:

e Stripe Login | Sign in to the Stripe Dashboard ti permetterà di generare un link che possono visitare e incollare un indirizzo email.

9 Mi Piace

Non mi ero reso conto che questa funzionalità mancasse da Discourse Subscriptions, ma questa è una funzionalità indispensabile.

2 Mi Piace

Sì, non me ne ero reso conto nemmeno io. Queste sembrano urgenti.

1 Mi Piace

Fantastico! Dove dovrebbe essere aggiunto questo codice?

1 Mi Piace

Ciao, puoi spiegare il codice che hai fornito e come usarlo?

Ho anche bisogno che i miei utenti possano accedere a questo portale Stripe perché legalmente devo fornire loro una fattura che non viene inviata quando un abbonamento viene creato tramite API:

La soluzione temporanea che ho trovato è stata utilizzare il Custom Hamburger Menu Links Theme Component e aggiungere un link al portale Stripe. Funziona, ma non è l’ideale per gli utenti che devono accedervi tramite un link via email.

1 Mi Piace

Dovresti inserirlo in un plugin che generasse il link e lo aggiungesse al serializzatore, e poi inserire quel link da qualche parte nell’UX. Non è qualcosa per cui ho trovato il tempo. Funzionerebbe dalla console di Rails, ma non ti sarebbe di grande aiuto.

Sembra che il codice funzioni ancora.

La cosa più semplice da fare sarebbe creare un fork del plugin e aggiungere il codice. La cosa più difficile, ma molto migliore, sarebbe aggiungere il codice e i test in modo che venga accettato come PR. Se hai un budget, puoi pubblicare su Marketplace o contattarmi direttamente. Una via di mezzo sarebbe creare un plugin che, ad esempio, aggiunga il link al serializzatore in modo che tu possa poi inserirlo da qualche parte nell’UX, come il menu hamburger che stai facendo ora.

2 Mi Piace

Grazie per la tua risposta e spiegazione. Sfortunatamente non ho esperienza nello sviluppo di plugin e posso fare solo alcune leggere modifiche html/css, forse alcuni comandi nella console rails se necessario.

Penso che per ora mi atterrò alla mia soluzione alternativa. Aggiungerò anche il link allo Stripe Portal ovunque possibile quando l’utente si iscrive (Admin > Personalizza > Testo).

2 Mi Piace

Quel link ha una scadenza, quindi penso che il modo per farlo sarebbe aggiungere un percorso che reindirizzi. Ciò eviterebbe la complicazione della commissione di sapere quando ottenere un nuovo link e keto di effettuare una serie di chiamate non necessarie per ottenere un link che non verrà mai cliccato.

È ancora un plugin, ma penso che sarebbe un pr molto più semplice.

1 Mi Piace

Ah, penso che non stiamo parlando dello stesso link… Probabilmente ti riferisci al link generato dal codice che hai fornito. Io parlo del link al portale clienti no-code che posso attivare nella dashboard di Stripe. Credo che questo sia valido finché il portale è attivo.

Sì. Se ricordo bene, il mio codice impedisce loro di inserire il proprio indirizzo email e di ricevere il link via email (e di sapere quale indirizzo email hanno usato). Se questo è sufficiente, allora sei a posto.

Da notare che ora sembra essere supportato direttamente nel plugin:

3 Mi Piace

Infatti! E questo è di grande aiuto (ed è una parte importante del motivo per cui non ho fatto nulla riguardo al link magico). Tuttavia, non risolve il problema di ottenere l’accesso alla cronologia dei pagamenti e ai link delle fatture.

3 Mi Piace