2011-02-23 3 views
0

Je n'ai pas le magasin typique dans lequel vous savez ce que vous vendez à l'avance. Je crée des produits personnalisés sur le pouce (besoin de remplir quelques formulaires) que les gens peuvent acheter, donc avant qu'ils ne partent sur le site de paiement paypal (j'utilise Paypal Standard avec django-paypal sans problèmes) je dois stocker le produit dans le DB, donc si le salaire, il est associé à l'IPN en utilisant le numéro de facture.django-paypal: Manipulation flux avant de laisser au paiement paypal

Je pourrais stocker toutes les combinaisons qu'un utilisateur fait même si elles n'appuient pas sur le bouton "Acheter maintenant", mais que la base de données se développerait trop rapidement. Je sais que je peux faire un processus cron supprimer ces produits non payés. Mais sincèrement je suis assez nouveau avec paypal, et IPN échoue de temps en temps, donc je pourrais finir avec un produit payé, que je n'ai plus dans la DB, donc un remboursement serait le seul choix, cela signifie affaire perdue.

Quelqu'un at-il une idée sur la façon de résoudre ce problème? La seule chose que je peux penser est de manipuler la forme de django-paypal pour appeler une vue de moi-même, qui stocke le produit, puis manuellement POST le formulaire à paypal.

Répondre

0

J'ai un problème similaire moi-même. Voici le chemin que je suis:

Je crée une page qui a l'image du bouton paypal qui vient de soumettre l'information produit final à mon site. À ce stade, je sauvegarde dans la base de données ce que l'utilisateur a demandé et répondre à une page qui contient le formulaire paypal, et une auto-soumission sur le chargement. ie.sth comme ça

<head> 
<script src="{{ STATIC_URL }}js/jquery.js"></script> 
    <script> 
    $(document).ready(function() { 
    $("#paypalform").submit() 
}); 
    </script> 
</head> 

<form id="paypalform" name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
    <input type="hidden" name="cmd" value="_xclick"> 
    <input type="hidden" name="business" value="[email protected]"> 
    <input type="hidden" name="amount" value="0.20"> 
    <input type="hidden" name="custom" value="{{translation.id}}"> 
    <input type="hidden" id="quantity" name="quantity" value="{{translation.cnt_words}}"> 
    <input type="hidden" name="item_name" value="Some Name"> 
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
</form> 

</script> 

regardant django_paypal - il semble que form.render() me permettrait de remplacer tous les trucs de formulaire paypal ci-dessus avec sa sortie. Le seul problème peut être que je préférerais qu'il n'y ait rien de visible dans la page (à part un "clic ici si ce formulaire ne vous redirige pas vers paypal ..) ce qui signifie que je devrais soit modifier la fonction de rendu donc permet en option de surcharger l'affichage du bouton .... ou peut-être de supprimer le bouton avec quelques js sur le chargement du document ..

Désolé pour le manque de détails, mais je n'ai pas encore de code/produit).

Permettez-moi de savoir si cela aide.

Diomède

+0

J'espérais trouver une solution sans ne eding javascript, j'ai un grand nombre d'utilisateurs sans JavaScript activé, même ces jours-ci. – maraujop