2011-03-14 2 views
2

Je cherche un moyen de livrer les fichiers achetés aux utilisateurs d'une application web. Fondamentalement, un utilisateur va acheter un «produit» de mon site, à quel point ils peuvent télécharger les fichiers qu'ils ont achetés (sera probablement un fichier zip que j'ai précompilé)Rails - Fournir des fichiers téléchargeables après paiement

J'utilise Rails 2.3.8, et j'ai le traitement des paiements travaillant les solutions Braintree. Existe-t-il un moyen standard d'y parvenir, en utilisant des codes courts, ou quelque chose? Est-ce que Braintree a quelque chose de intégré, est-ce qu'un plugin/gemme existe?

Je suis vraiment juste un coup de pouce dans la bonne direction à comment cela se fait généralement ..

Merci!

Répondre

1

Ce que vous pouvez faire est d'avoir chaque Product modèle utilisateurs approuvés. Lorsque BrainTree vous donne l'OK qu'un utilisateur a payé pour un produit, vous pouvez ajouter cet utilisateur à la liste des utilisateurs approuvés. Donc, dans votre ProductController vous vérifiez si l'utilisateur actuel est un utilisateur approuvé, si le téléchargement du fichier, sinon les rediriger.

Pour Exsample:

product.rb

class Product < ActiveRecord::Model 
    has_many approved_users, :class => User 
end 

product_controller.rb

class ProductController 
    def download 
    @product = Product.find_by_id(:id) 
    if @product.approved_users.includes?(current_user) 
     # Give them the file 
    else 
     flash[:notice] = "You must buy the product first!" 
     redirect_to product_sales_url(@product) 
    end 
    end 
end 

Ou quelque chose comme ça. Ma syntaxe pourrait être un peu éteinte, mais cela devrait vous aider à démarrer.

+0

semble être une bonne idée .. – Rabbott

Questions connexes