问题描述
我们收到一位客户的投诉,他订阅后但未被添加到群组。
摘要
如果用户的电子邮件地址(不知何故?)与其在 Stripe 中的电子邮件地址不匹配,他们将不会获得订阅。更改 Stripe 中的电子邮件地址可以解决此问题。
调查
现在我们看到了以下情况。
- 在包含所有订阅的概览中,它在那里
- 用户在其个人资料中确实有一笔付款
- 用户在其个人资料中没有订阅!!!
- 数据库中的一切看起来都正常。我稍微编辑了 ID,因为我不知道 Stripe ID 有多机密。
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
用户 ID 与所讨论的用户匹配。
在 Stripe 中,元数据匹配,但电子邮件地址不匹配!
将 Stripe 中的电子邮件地址更改为与 Discourse 电子邮件地址匹配可以解决此问题。订阅会立即出现在用户的个人资料中。
出于某种原因,该插件会尝试联系 Stripe 以查找此电子邮件地址的订阅。
我不明白为什么会这样工作。
- 元数据在那里,为什么不根据元数据进行匹配?
- 数据库中已经有所有信息了,为什么还要联系 Stripe?
这不仅仅是显示问题,毕竟用户也没有被添加到群组中。



