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.



