¿Cómo permitir que el cliente cambie la información de su tarjeta de crédito?

Una cosa con la que he tenido problemas es cómo permitir que el cliente cambie la información de su tarjeta de crédito. La última vez que surgió esto, terminé cancelando su suscripción y les pedí que hicieran una nueva. Por fin, he descubierto cómo generar un enlace a una página de Stripe que les permitirá ver su historial de facturas, agregar un método de pago y actualizar su información de facturación (dirección de correo electrónico).

Me gustaría enviar una PR al plugin de suscripciones para agregar este enlace, pero no tengo las horas que me llevaría en este instante, así que aquí les explico cómo hacerlo manualmente en Rails:

user = User.find_by_username('=USERNAME=');
sub=DiscourseSubscriptions::Customer.where(user_id: user.id).first;

Stripe.api_key = SiteSetting.discourse_subscriptions_secret_key
session=Stripe::BillingPortal::Session.create({
  customer: sub.customer_id,
  return_url: '=SITE_URL=/my/billing/subscriptions',
});
puts session.url

Aquí está la documentación:

y Stripe Login | Sign in to the Stripe Dashboard te permitirá generar un enlace que pueden visitar y pegar una dirección de correo electrónico.

9 Me gusta

No me di cuenta de que faltaba esta funcionalidad en Discourse Subscriptions, pero es una característica imprescindible.

2 Me gusta

Sí, yo tampoco me di cuenta de esto. Esto se siente urgente.

1 me gusta

¡Genial! ¿Dónde debería agregarse este código?

1 me gusta

Hola, ¿puedes explicar el código que proporcionaste y cómo usarlo?

También necesito que mis usuarios puedan acceder a este portal de Stripe porque legalmente debo proporcionarles una factura que no se envía cuando se crea una suscripción a través de la API:

La solución alternativa que encontré fue usar el Componente de tema de enlaces de menú de hamburguesa personalizados y agregar un enlace al portal de Stripe. Funciona, pero no es ideal para los usuarios que tienen que conectarse a él a través de un enlace por correo electrónico.

1 me gusta

Necesitarías ponerlo en un plugin que generara el enlace y lo agregara al serializador y luego poner ese enlace en algún lugar de la UX. No es algo para lo que haya tenido tiempo. Funcionará desde la consola de Rails, pero eso no te sirve de mucho.

Parece que el código todavía funciona.

Lo fácil sería bifurcar el plugin y agregar el código. Lo más difícil, pero mucho mejor, sería agregar el código y las pruebas para que se acepte como una PR. Si tienes presupuesto, puedes publicar en Marketplace o contactarme directamente. Un punto intermedio sería crear un plugin que, digamos, agregue el enlace al serializador para que luego puedas ponerlo en la UX en algún lugar, como el menú hamburguesa, como estás haciendo ahora.

2 Me gusta

Gracias por tu respuesta y explicación. Desafortunadamente, no tengo experiencia en el desarrollo de plugins y solo puedo hacer algunas modificaciones ligeras de HTML/CSS, tal vez algunos comandos en la consola de Rails si es necesario.

Creo que me quedaré con mi solución provisional por ahora. También añadiré el enlace al Portal de Stripe siempre que sea posible cuando el usuario se suscriba (Admin > Personalizar > Texto).

2 Me gusta

Ese enlace tiene tiempo limitado, así que creo que la forma de hacerlo sería añadir una ruta que redirija. Eso evitaría la complicación de saber cuándo obtener un nuevo enlace y de hacer un montón de llamadas innecesarias para obtener un enlace que nunca se hará clic.

Sigue siendo un plugin, pero creo que sería una PR mucho más sencilla.

1 me gusta

Ah, creo que no estamos hablando del mismo enlace… Probablemente te refieres al enlace generado a partir del código que proporcionaste. Yo me refiero al enlace del portal de clientes sin código que puedo activar en el panel de Stripe. Creo que este es válido mientras el portal esté activado.

Sí. Si mal no recuerdo, mi código simplemente les impide introducir su dirección de correo electrónico y obtener el enlace por sí mismos por correo electrónico (y saber qué dirección de correo electrónico utilizaron). Si eso es suficiente, entonces está todo listo.

Cabe destacar que esto parece estar soportado ahora directamente en el plugin:

3 Me gusta

¡De hecho! Y esto es de gran ayuda (y es una gran parte de por qué no he hecho nada con el enlace mágico). Sin embargo, no resuelve el problema de obtener acceso a tu historial de pagos y a los enlaces de las facturas.

3 Me gusta