2012-04-24 4 views
15

Je viens de mettre en place mon premier site avec bande, mais je pense que j'aurais pu concevoir mon intégration de bande beaucoup mieux que ce que j'avais. Les principaux problèmes que j'ai rencontrés étaient, comment puis-je maintenir l'état du compte de bande (essai et passé dû etc) quels sont les webhooks importants (et les meilleures façons de traiter tous les événements), et combien de données dois-je dupliquer dans ma base de données, et combien devrais-je tirer de la base de données Stripe.Stripe récurrente/abonnement facturation meilleure conception/pratiques?

Aimerait jeter quelques idées sur ce qui serait le mieux. Pour référence, j'ai développé mon site en Ruby sur rails, déployé à heroku, utilisé envoyer grille heroku ajouter pour envoyer des notifications par email sur les factures, les retards de paiement, etc

Aussi pour ceux qui utilisent stripe sur RoR voici quelques bonnes ressources que je (bien que je ne l'ai pas trouvé un qui couvre vraiment la facturation récurrente/abonnement avec bande):

Railscast:

Ofcourse la documentation de bande et api:

Ce petit morceau de code pour webhooks/envoi

Répondre

1

Le SaaS Rails Kit (que j'ai créé) s'intègre à stripe en stockant simplement l'information de la carte avec stripe (ne pas établir une charge récurrente), récupérer le jeton, puis facturer le jeton avec un travail cron quotidien lorsque les comptes des gens viennent à échéance. Un certain nombre d'avantages à cette approche incluent ne pas avoir à s'inquiéter des webhooks/garder les deux systèmes en synchronisation et être capable de faire la facturation mesurée en plus d'une redevance mensuelle plate.

+1

intéressant de sorte que vous manipulez manuellement tout de votre côté – hajpoj

+10

Pourquoi définiriez-vous des tâches cron pour gérer cela lorsque Stripe a déjà une fonctionnalité de facturation récurrente/par abonnement? – JM4

+0

Je suis googeling pour une solution depuis 2 heures. Chaque ressource que je trouve il y a un commentaire de vous quelque part. – b1nary

3

En ce qui concerne la duplication - j'ai choisi de stocker uniquement la clé CustomerKey sur mes enregistrements d'utilisateur localement. Tout le reste, les factures, les transactions, etc. sont tous stockés dans Stripe. IMO mieux ne pas essayer de garder la parité entre les deux systèmes - au mieux, vous aurez des données en double, au pire, vous causera toutes sortes de maux de tête en n'étant pas synchrones ...

+1

Huh J'ai essayé de ne pas garder la parité mais je voulais utiliser l'état du compte pour afficher les messages d'erreur au chargement de la page, mais les appels à la bande prenaient trop de temps pour obtenir le statut. – hajpoj

+1

Qu'en est-il de la mise en cache des appels Stripe? Les problèmes de chargement de page ne se produiront que la première fois qu'un appel API est exécuté.Les appels suivants sont retirés du cache –

+0

@ChristianFazzini Je sais que ça fait quelques années mais je suppose que vous parlez de Stripe.js pour ces appels et un cache, ou y at-il une sorte de cache côté serveur qui peut être utilisé ? –