Sottoscrizione non trovata a causa di mancata corrispondenza dell'email

Descrizione del problema

Abbiamo ricevuto un reclamo da un cliente che ha ottenuto un abbonamento ma non è stato aggiunto al gruppo.

TL;DR

Se l’indirizzo email di un utente (in qualche modo?) non corrisponde al suo indirizzo email in Stripe, non riceve un abbonamento. La modifica dell’indirizzo email in Stripe risolve il problema.

Indagine

Ora abbiamo visto quanto segue.

  • Nella panoramica con tutti gli abbonamenti, è presente

  • L’utente ha un pagamento nel suo profilo

  • L’utente NON ha un abbonamento nel suo profilo!!!

  • Nel database tutto sembra a posto. Ho oscurato un po’ gli ID poiché non so quanto siano riservati gli ID di Stripe.
db0731=# select * from discourse_subscriptions_subscriptions where external_id='sub_1Lf285...9YA0';
-[ RECORD 1 ]-----------------------------
id          | 944
customer_id | 944
external_id | sub_1Lf285...9YA0
created_at  | 2022-09-06 13:47:57.074098
updated_at  | 2022-09-06 13:47:57.074098

db0731=# select * from discourse_subscriptions_customers where user_id=62443;
-[ RECORD 1 ]---------------------------
id          | 944
customer_id | cus_MN...sc
product_id  | prod_MH451u0JeKHoMv
user_id     | 62443
created_at  | 2022-09-06 13:47:57.057455
updated_at  | 2022-09-06 13:47:57.057455

L’ID utente corrisponde all’utente in questione.

In Stripe, i metadati corrispondono, ma l’indirizzo email no!

La modifica dell’indirizzo email in Stripe in modo che corrisponda all’indirizzo email di Discourse risolve il problema. L’abbonamento appare immediatamente nel profilo dell’utente.

Per qualche motivo, il plugin contatta Stripe cercando di trovare gli abbonamenti per questo indirizzo email.

Non capisco perché funzioni in questo modo.

  • I metadati sono presenti, quindi perché non basarsi sui metadati?
  • Tutte le informazioni sono già nel database, quindi perché contattare Stripe in primo luogo?

Non è solo un problema di visualizzazione, dopotutto l’utente non è stato aggiunto nemmeno al gruppo.

2 Mi Piace