Abonnement introuvable en raison d'une discordance d'e-mail

Description du problème

Nous avons reçu une plainte d’un client qui a souscrit un abonnement mais n’a pas été ajouté au groupe.

TL;DR

Si l’adresse e-mail d’un utilisateur ne correspond pas (d’une manière ou d’une autre ?) à son adresse e-mail dans Stripe, il ne reçoit pas d’abonnement. La modification de l’adresse e-mail dans Stripe résout le problème.

Enquête

Nous avons constaté ce qui suit.

  • Dans l’aperçu de tous les abonnements, il est présent

  • L’utilisateur a un paiement dans son profil

  • L’utilisateur n’a PAS d’abonnement dans son profil !!!

  • Dans la base de données, tout semble correct. J’ai un peu masqué les identifiants car je ne sais pas à quel point les identifiants Stripe sont confidentiels.
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’identifiant de l’utilisateur correspond à l’utilisateur en question.

Dans Stripe, les métadonnées correspondent, mais l’adresse e-mail ne correspond pas !

La modification de l’adresse e-mail dans Stripe pour qu’elle corresponde à l’adresse e-mail Discourse résout le problème. L’abonnement apparaît immédiatement dans le profil de l’utilisateur.

Pour une raison quelconque, le plugin contacte Stripe pour trouver les abonnements pour cette adresse e-mail.

Je ne comprends pas pourquoi cela fonctionne ainsi.

  • Les métadonnées sont présentes, alors pourquoi ne pas les faire correspondre aux métadonnées ?
  • Toutes les informations sont déjà dans la base de données, alors pourquoi contacter Stripe en premier lieu ?

Ce n’est pas seulement un problème d’affichage, après tout, l’utilisateur n’a pas non plus été ajouté au groupe.

2 « J'aime »