Beschreibung des Problems
Wir hatten eine Beschwerde von einem Kunden, der ein Abonnement erhalten hat, aber nicht zur Gruppe hinzugefügt wurde.
TL;DR
Wenn die E-Mail-Adresse eines Benutzers (irgendwie?) nicht mit seiner E-Mail-Adresse in Stripe übereinstimmt, erhält er kein Abonnement. Das Ändern der E-Mail-Adresse in Stripe löst das Problem.
Untersuchung
Jetzt haben wir Folgendes gesehen.
- In der Übersicht mit allen Abonnements ist es vorhanden
- Der Benutzer hat eine Zahlung in seinem Profil
- Der Benutzer hat KEIN Abonnement in seinem Profil!!!
- In der Datenbank sieht alles in Ordnung aus. Ich habe die IDs etwas geschwärzt, da ich nicht weiß, wie vertraulich Stripe-IDs sind.
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
Die Benutzer-ID stimmt mit dem betreffenden Benutzer überein.
In Stripe stimmen die Metadaten überein, aber die E-Mail-Adresse nicht!
Das Ändern der E-Mail-Adresse in Stripe, sodass sie mit der Discourse-E-Mail-Adresse übereinstimmt, löst das Problem. Das Abonnement erscheint sofort im Profil des Benutzers.
Aus irgendeinem Grund versucht das Plugin, Stripe zu kontaktieren, um die Abonnements für diese E-Mail-Adresse zu finden.
Ich verstehe nicht, warum es so funktioniert.
- Die Metadaten sind vorhanden, warum also nicht darauf abgleichen?
- Alle Informationen sind bereits in der Datenbank vorhanden, warum also überhaupt Stripe kontaktieren?
Es ist nicht nur ein Anzeigeproblem, schließlich wurde der Benutzer auch nicht zur Gruppe hinzugefügt.



