[ paypal ] Problème avec la variable invoice

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [ paypal ] Problème avec la variable invoice

par zeus » 29 août 2008, 19:42

Attention, je distingue les notions de "demande de paiement" et de "commande".

Tu auras une table "paiement" avec une clé primaire auto-incrémentée, et au statut (réussite, échec)
Mais également une table "commande" avec une clé étrangère vers la table "paiement".

Comme ça, tu stockes toutes les demandes de paiement dans une table, et dans ta table commande, tu n'as qu'un lien vers le paiement qui a réussi.

par VaN » 29 août 2008, 17:26

Donc j'aurai une table générale, qui stocke toutes les demandes qui aboutissent jusqu'à la page de paiement, et vraie table, qui stockent seulement les commandes validées. C'est surement la meilleure solution effectivement. J'y vois 2 petits problèmes :

1. Il faut créer un script qui permet de vider la table "brouillon" de temps en temps.
2. Lorsque je vais récupérer les commandes validées de la table "brouillon", ma table "commandes" va contenir des identifiants qui ne se suivent pas (ex : commande #1 validée, je la stocke, commande #2 annulée avant le paiement, pas stockée, commande #3 validée, je la stocke. Je me retrouve avec une ligne #1, suivie d'une ligne #3. C'est vraiment un détail, mais mon coté perfectionniste en est tout froissé :? )

par zeus » 29 août 2008, 16:57

Et que se passe-t-il si ton utilisateur lance un paiement, se rétracte, et relance finalement le paiement ?

Je pense qu'il faut différencier le numéro de la commande du numéro de paiement.
Je pense que gérer une table avec les demandes de paiements, table qui gérerait son propre identifiant, serait une bonne idée.

Comme ça, dès que tu permet un paiement, tu log cette demande et tu utilises le numéro généré.

[ paypal ] Problème avec la variable invoice

par VaN » 29 août 2008, 16:44

Bonjour à tous,



Je suis en train de créer une application eCommerce, et j'y intègre un bouton paypal crypté.

Tout marche à peu près, sauf que je rencontre un problème avec la variable invoice.

J'ai décidé d'empêcher les paiements accidentels sur mon compte vendeur sandbox. Il faut donc que cette variable soit unique, à chaque transaction.

La logique voudrait donc que je lui donne l'identifiant de la commande en cours, dans ma base de données. La où ça cloche, c'est que au moment de cliquer sur le bouton paypal, pour payer, la commande en cours n'existe pas encore dans la base de données. Cette insertion doit normalement se faire sur le script IPN, lorsque le paiement a été validé. Car si je la créée avant le paiement, pour passer son ID à la variable invoice, et que finalement, sur la page paypal, l'utilisateur décide qu'il ne veut plus acheter et ferme la page, je me retrouve avec une commande insérée dans ma base de donnée, mais qui n'a pas été payée.

Quelqu'un a t'il déjà été confronté à ce problème ? Si oui, comment l'a t'il résolu ?


Merci d'avance.