IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

enregistrement commande paypal avant le paiement


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut enregistrement commande paypal avant le paiement
    Bonjour,

    J'ai suivi une partie d'un tutoriel pour intégrer paypal dans un site web.
    Le problème c'est que dans le tutoriel il est conseillé d'enregistrer la commande avec statut (0 non payé, 1 payé)
    avant de passer au paiement. Mais si le panier change, le prix de la commande change
    et il n'y a rien dans le tutoriel qui indique qu'il faut vérifier le prix avant enregistrement de la commande. Que dois-je faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    if (!isset($_SESSION['panier']['commande'])) {
    			// 1 - J'enregistre la commande en BDD avec statut 0
    			mysql_query("LOCK TABLES commande WRITE");
    			mysql_select_db($database_base, $base);
    			$insert_commande = sprintf("INSERT INTO commande(Utilisateur_idUtilisateur,dateCommande,modePaimentCommande,EtatCommande_idEtatCommande, prixCommande,EtatPaiement) 
    			VALUES(%s, NOW(), 'paypal',1,%s,0)",$_SESSION['MM_UserId'],$_SESSION['panier']['PrixTotalTtc']);
    			$commande = mysql_query($insert_commande, $base) or die(mysql_error());
     
     
     
    			// 2 - Je récupère le n° de commande dans la BDD et je le mets en session
    			mysql_select_db($database_base, $base);
    			$query_commandeId = "SELECT MAX(idCommande) AS last_id FROM commande";
    			$commandeId = mysql_query($query_commandeId, $base) or die(mysql_error());
    			$row_commandeId = mysql_fetch_assoc($commandeId);
    			$_SESSION['panier']['commande'] = $row_commandeId['last_id'];
     
    			mysql_query("UNLOCK TABLES");
     
    			}
    Une autre question, est ce que je dois enregistrer le panier (les produits --> id, quantité) dans la bdd avant le paiement
    ou alors passer le tableau contenant les infos du panier dans le formulaire précédant le paiement paypal en utilisant serialize.
    Là aussi se pose le problème de vérifier si le panier change on doit tout changer dans la bdd

    1ere solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="custom" type="hidden" value='<?php echo serialize($_SESSION['achats']);?>' />
    2eme solution : c'est juste un exemple je sais que le code n'est pas correct c'est juste pour donner une idée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    //verifier si le panier et le même qu'avant
    			$tab_produits = $_SESSION['achats'];
    			//récupérer le panier dans la base
    			$requete= "SELECT * from composee where Commande_idCommande=".$_SESSION['panier']['commande']."order by idComposee ASC";
    			$tab_produitsBase =   0;  
    			if($tab_produits != $tab_produitsBase ) {      
    			//insertion des produits commande
    				//Si le panier existe et qu'il n'est pas vide
    					if(isset($tab_produits) && count($tab_produits) > 0){
    					// on supprime les produits de la commande
    					$deletesql= "delete from composee where ..."
    					//Parcours des articles composant le panier
    						for ($i=0; $i < count($tab_produits); $i++)
    						{
    						//$tab_produits[$i]['id'];
    						//Insertion des tuples pour la commande en cours
    						mysql_select_db($database_base, $base);		
    						$insert_commande = sprintf("INSERT INTO 
    						composee(Produit_idProduit, Commande_idCommande,quantite) 
    						VALUES(%s, %s, %s)", $tab_produits[$i]['id'], $_SESSION['panier']['commande'], $tab_produits[$i]['qte']);
    						//echo $insert_commande;
    						$commande = mysql_query($insert_commande, $base) or die(mysql_error());
    						}
    					}
    			}

    Désolé pour le pavé
    Je vous remercie .

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonsoir Emilie

    Le tutoriel dont vous parlez, et que j'ai rédigé, traite exclusivement de l'installation du moyen de paiement Paypal sur un panier normalement existant. Voilà pourquoi il peut vous sembler incomplet.

    J'ai pour habitude effectivement de traiter deux cas : le premier me permet d'enregistrer toute nouvelle commande avant le paiement Paypal afin de garder une trace au cas où la personne fermerait l'onglet Paypal (après paiement) avant de revenir sur le site (ça arrive plus souvent qu'on ne le pense ^^). Le deuxième concerne effectivement la modification. Dans ce cas précis, il faut effectivement mettre à jour la BDD avant d'envoyer la personne sur la page de paiement.

    Après vous n'avez aucune obligation de sauvegarder la commande avant le paiement. Cela reste une suggestion dans le cadre d'un tutoriel. ^^

    Si vous avez d'autres questions, n'hésitez pas à poursuivre sur le forum où à me contacter directement depuis mon site si vous bloquez sur un point précis.

    Hervé

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    ok merci pour la réponse.
    Mais pour vérifier le prix de la commande c'est quand même mieux d'enregistrer comme dans le tutoriel.
    je pense donc que je vais enregistrer la commande et faire passer la variable de session pour le panier par le champ custom.
    C'est surement le plus simple.

Discussions similaires

  1. [AC-2007] Annulation enregistrement - commande non disponible
    Par lio33 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/07/2012, 03h47
  2. Réponses: 4
    Dernier message: 09/03/2011, 18h49
  3. Mail automatique suite a commande paypal
    Par ploufleouf74 dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2010, 15h44
  4. [PayPal] Validation après paiement
    Par milan dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 06/08/2009, 10h30
  5. Verrouiller le caddie avant le paiement
    Par Yellu dans le forum E-Commerce
    Réponses: 6
    Dernier message: 21/11/2008, 08h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo