2012-04-24 8 views
15

Vengo de armar mi primer sitio con stripe, pero siento que podría haber diseñado la integración de mi banda mucho mejor que la que tenía. Los principales problemas con los que me encontré fueron: ¿cómo mantengo el estado de la cuenta de stripe (prueba y vencimiento, etc.)? ¿Cuáles son los webhooks más importantes (y las mejores formas de tratar con todos los eventos) y cuántos datos debo? estar duplicando en mi base de datos, y cuánto debería sacar de la base de datos Stripe.Stripe recurring/subscription billing best design/practices?

Me encantaría arrojar algunas ideas sobre lo que sería mejor. Como referencia desarrollé mi sitio en Ruby on rails, desplegué en heroku, utilicé la grilla de envío heroku para enviar notificaciones por correo electrónico sobre facturas, pagos atrasados, etc.

También para aquellos que usan stripe en RoR aquí hay algunos buenos recursos que he usado (aunque no he encontrado uno que realmente cubre recurrente de facturación/suscripción con franja):

Railscast:

Por supuesto la documentación de banda y api:

Esta pequeña pieza de código para WebHooks/correo

Respuesta

1

El SaaS Rails Kit (que creé) se integra con la raya simplemente almacenando la información de la tarjeta con banda (no configurando una carga recurrente), recuperando la ficha y luego facturando la ficha con una tarea cron diaria cuando las cuentas de las personas venzan.

Un par de ventajas de este enfoque incluyen no tener que preocuparse por webhooks/mantener los dos sistemas sincronizados y poder hacer la facturación medida además de una tarifa mensual fija.

+1

interesante, así que básicamente maneja manualmente todo en su extremo – hajpoj

+10

¿Por qué configurar los trabajos cron para manejar esto cuando Stripe ya tiene facturación recurrente/suscripción como funcionalidad? – JM4

+0

estoy buscando una solución desde hace como 2 horas. Cada recurso encuentro que hay un comentario tuyo en alguna parte. – b1nary

3

Con respecto a la duplicación: elegí almacenar solo CustomerKey en mis registros de usuario localmente. Todo lo demás, Facturas, Transacciones, etc. se almacena en Stripe. IMO es mejor no intentar mantener la paridad entre ambos sistemas; en el mejor de los casos tendrá datos duplicados; en el peor, causará todo tipo de dolores de cabeza al no estar sincronizados ...

+1

Huh Intenté no mantener la paridad pero quería usar el estado de la cuenta para mostrar mensajes de error en la carga de la página, pero las llamadas a la banda tardaban demasiado en obtener el estado y, por lo tanto, la carga de la página tardó mucho tiempo. . – hajpoj

+1

¿Qué pasa con el caché de llamadas en banda? Los problemas de carga de la página solo ocurrirán la primera vez que se ejecute una llamada API.Las llamadas subsiguientes se extraen del caché –

+0

@ChristianFazzini Sé que han pasado un par de años, pero supongo que estás hablando de Stripe.js para estas llamadas y un caché, o hay algún tipo de caché del lado del servidor que se puede usar ? –