Suscripción no encontrada por discrepancia de correo electrónico

Descripción del problema

Recibimos una queja de un cliente que obtuvo una suscripción pero no fue agregado al grupo.

TL;DR

Si la dirección de correo electrónico de un usuario (¿de alguna manera?) no coincide con su dirección de correo electrónico en Stripe, no recibe una suscripción. Cambiar la dirección de correo electrónico en Stripe resuelve el problema.

Investigación

Ahora vimos lo siguiente.

  • En la vista general con todas las suscripciones, está ahí

  • El usuario tiene un pago en su perfil

  • ¡¡¡El usuario NO tiene una suscripción en su perfil!!!

  • En la base de datos todo parece estar bien. Redacté un poco los ID ya que no sé cuán confidenciales son los ID de 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

El ID de usuario coincide con el usuario en cuestión.

En Stripe, los metadatos coinciden, ¡pero la dirección de correo electrónico no!

Cambiar la dirección de correo electrónico en Stripe para que coincida con la dirección de correo electrónico de Discourse resuelve el problema. La suscripción aparece inmediatamente en el perfil del usuario.

Por alguna razón, el plugin se comunica con Stripe intentando encontrar las suscripciones para esta dirección de correo electrónico.

No entiendo por qué funciona de esta manera.

  • Los metadatos están ahí, ¿entonces por qué no coinciden con los metadatos?
  • Toda la información ya está en la base de datos, ¿entonces por qué contactar a Stripe en primer lugar?

No es solo un problema de visualización, después de todo, el usuario tampoco fue agregado al grupo.

2 Me gusta