Plugin: discourse-subscriptions Version: Ultimo (aggiornato) Versione di Discourse: 3.5.4
Riepilogo del Bug: In alcuni casi limite, il plugin crea un PaymentIntent senza allegare un metodo di pagamento valido, causando il fallimento silenzioso dell’abbonamento per l’utente finale.
Passaggi per Riprodurre:
-
Il cliente ha una carta scaduta salvata nel proprio profilo cliente Stripe
-
Il cliente tenta di abbonarsi o aggiornare il proprio metodo di pagamento
-
Il plugin crea un PaymentIntent ma non riesce a trasmettere i dettagli della nuova carta a Stripe
-
La transazione fallisce con l’errore
resource_missingopayment_intent_incompatible_payment_method
Log degli Errori di Stripe:
resource_missing: Questo cliente non ha fonti di pagamento allegate o un metodo di pagamento predefinito.
payment_intent_incompatible_payment_method: Era previsto un metodo di pagamento di tipo card, ma questo PaymentIntent non ha un metodo di pagamento e non ne è stato fornito alcuno.
Conferma di Stripe:
-
L’account Stripe è in regola, non ci sono problemi dal loro lato
-
I PaymentIntent sono stati creati senza un metodo di pagamento allegato
-
Il plugin passa in alcuni casi un oggetto
card_invece di un oggetto Metodo di Pagamentopm_— questi non sono intercambiabili nell’API attuale di Stripe
Contesto Aggiuntivo:
-
Questo si verifica circa 2 volte al mese in una community con circa 18.000 membri attivi
-
Il plugin è integrato e non può essere modificato a livello di host (confermato da Communiteq)
-
Il checkout normale funziona correttamente; il fallimento si verifica specificamente quando un cliente ha una carta obsoleta/scaduta salvata e tenta un nuovo pagamento
-
La soluzione alternativa è inviare manualmente una fattura ospitata da Stripe, ma ciò non attiva il webhook che assegna automaticamente il gruppo Discourse all’utente, creando un secondo passaggio manuale
Richiesta: Una correzione per il passaggio del metodo di pagamento quando la carta esistente di un cliente è scaduta o non valida, garantendo che l’inserimento della nuova carta generi un corretto oggetto Metodo di Pagamento pm_ che venga correttamente allegato al PaymentIntent prima dell’invio.