2010-04-05 10 views
2

J'essaie d'intégrer Django-Paypal sur un site, où une fois que le client effectue un paiement, je dois envoyer une URL dynamique à partir de laquelle l'utilisateur peut télécharger des informations spécifiques.intégrer django-paypal

J'inscris tous les utilisateurs à une URL qui leur permet d'acheter le document. L'URL qui ne peut être accessible que par un utilisateur enregistré avec un identifiant d'e-mail vérifié à l'aide de django-registration, permet à l'utilisateur de se connecter à paypal et d'effectuer un paiement.

Comment capturer le signal et vérifier que l'utilisateur a effectué le paiement pour quel produit il/elle a acheté, sur la base de ces informations

1) Je dois savoir deux informations, l'utilisateur qui a effectué le paiement, et pour quel produit a-t-il effectué le paiement?

2) Seulement si j'ai ces informations je peux envoyer le bon UR: L par email.

Toute aide appréciée. Je ne suis pas très sûr de la façon dont fonctionnent les signaux Django. Quels sont les détails du signal de payment_was_successful?

J'utilise IPN

+0

ramdaz, notez que vous pouvez * cocher la case, pour indiquer que c'est correct. Cela permettra également d'améliorer votre taux d'acceptation. –

Répondre

3

Pour capturer le signal, vous définissez votre fonction, et de se connecter au signal comme celui-ci:

from paypal.standard.ipn.signals import payment_was_successful 
def my_payment_was_successful_handler(sender, **kwargs): 
    pass 

payment_was_successful.connect(my_payment_was_successful_handler) 

Pour être en mesure d'identifier l'utilisateur le message IPN est sur le point , Je modifie généralement le bouton paypal pour passer un champ nommé custom dans le formulaire défini sur le django user.id ou un autre identifiant que vous pouvez rechercher pour identifier votre utilisateur. La variable custom est renvoyée dans l'argument sender et vous pouvez trouver l'utilisateur.

Pour trouver le produit, le product_name est également envoyé dans le sender au gestionnaire mentionné ci-dessus. Vous aurez probablement un modèle pour vos produits, et vous aurez envie de les rechercher par ce nom de produit pour envoyer la chose appropriée dans l'email.

+0

Eh bien, merci. C'est exactement ce que j'essaie de faire. – ramdaz