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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Paiement via Paypal récupérer l'id de l'utilisateur


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 16
    Points : 15
    Points
    15
    Par défaut Paiement via Paypal récupérer l'id de l'utilisateur
    Bonjour à tous j'ai suivi un tutoriel pour communiquer avec paypal et permettre de payer avec, ça marche très bien aucun soucis, cependant j'aimerais que lorsque le paiement est validé, et bien que l'utilisateur gagne de l'argent virtuel sur son compte (en somme, update la colonne money dans la bdd). Je sais comment faire pas de problème. Mais ça ne marche pas, et je ne trouve pas de solution, peut-être que vous en saurez plus que moi à ce sujet.

    Voici le code qui permet de communiquer avec paypal (ipn.php)
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <?php
    $email_account = 'saooty-sell@gmail.com';
    $req = 'cmd=_notify-validate';
     
    foreach ($_POST as $key => $value)
    {
        $value = urlencode(stripslashes($value));
        $req .= "&$key=$value";
    }
     
    $header = "POST /cgi-bin/webscr HTTP/1.1\r\n"; // HTTP1.1 Update
    $header .= "Content-Length: " . strlen($req) . "\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Host: www.sandbox.paypal.com\r\n"; // Sandbox Host
    //$header .= "Host: ipnpb.paypal.com\r\n"; // Live Host
    $header .= "Connection: close\r\n\r\n";
    $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
     
    // assign posted variables to local variables
    $item_name = $_POST['item_name'];
    $item_number = $_POST['item_number'];
    $payment_status = $_POST['payment_status'];
    $payment_amount = $_POST['mc_gross'];
    $payment_currency = $_POST['mc_currency'];
    $txn_id = $_POST['txn_id'];
    $receiver_email = $_POST['receiver_email'];
    $payer_email = $_POST['payer_email'];
    $id_user = $_POST['custom'];
     
    if (!$fp)
    {
      header('Location: http://blackcraft.pulseheberg.org/paypal/cancel.php');
    }
    else
    {
        fputs ($fp, $header . $req);
        while (!feof($fp))
        {
          $res = fgets ($fp, 1024);
          if (strcmp ($res, "VERIFIED") == 0)
          {
            if($payment_status == "Completed")
            {
              if($email_account == $receiver_email)
              {
                if($payment_amount == 2.39)
                {
                  if($payment_currency == "EUR")
                  {
                    // PAS D'ERREUR
                    $db = new PDO('mysql:host=mysql.pulseheberg.org;dbname=site', 'root', '');
     
                    $req = $db->prepare('SELECT * FROM wc_users WHERE id = :id');
                    $req->execute(array('id' => $id_user));
                    $data = $req->fetch();
     
                    $money = $data['money'];
                    $new_money = $money + 50;
     
                    $req = $db->prepare('UPDATE wc_users SET money = :money WHERE id = :id');
                    $req->execute(array('money' => $new_money, 'id' => $id_user));
                  }
                  else
                  {
                    header('Location: http://blackcraft.pulseheberg.org/paypal/cancel.php');
                  }
                }
                else
                {
                  header('Location: http://blackcraft.pulseheberg.org/paypal/cancel.php');
                }
              }
              else
              {
                header('Location: http://blackcraft.pulseheberg.org/paypal/cancel.php');
              }
            }
            else
            {
              header('Location: http://blackcraft.pulseheberg.org/paypal/cancel.php');
            }
          }
          else if (strcmp ($res, "INVALID") == 0)
          {
            header('Location: http://blackcraft.pulseheberg.org/paypal/cancel.php');
          }
        } // Fin du while
    fclose ($fp);
    }
    ?>
    Et voici le formulaire
    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
    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" value="2" name="amount" />
    <input name="currency_code" type="hidden" value="EUR" />
    <input name="shipping" type="hidden" value="0.00" />
    <input name="tax" type="hidden" value="0.39" />
    <input name="return" type="hidden" value="http://blackcraft.pulseheberg.org/paypal/success.php" />
    <input name="cancel_return" type="hidden" value="http://blackcraft.pulseheberg.org/paypal/cancel.php" />
    <input name="notify_url" type="hidden" value="http://blackcraft.pulseheberg.org/paypal/ipn.php" />
    <input name="cmd" type="hidden" value="_xclick" />
    <input name="business" type="hidden" value="saooty-sell@gmail.com" />
    <input name="item_name" type="hidden" value="50 emeraudes pour Blackcraft" />
    <input name="no_note" type="hidden" value="1" />
    <input name="lc" type="hidden" value="FR" />
    <input name="bn" type="hidden" value="PP-BuyNowBF" />
    <input name="custom" type="hidden" value="<?php echo $_SESSION['id']; ?>" />
    <input class="btn btn-success" type="submit" value="Acheter via PayPal">
    </form>
    Merci beaucoup

  2. #2
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Même problème ...
    Je suis sur le sujet depuis 1 jour, pas trouvé de réponse. Avez-vous pu avancer?

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    en fait ca ce joue , de mon point de vue sur cette ligne la : $email_account
    Conception / Dev

  4. #4
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci, j'ai réussi hier soir à résoudre le problème, ça fonctionne maintenant sur ma Sandbox

Discussions similaires

  1. [PayPal] Redirection HTTP sur serveur de paiement via method POST
    Par aphax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 06/08/2009, 10h42
  2. Paiement avec paypal
    Par mariepierre dans le forum E-Commerce
    Réponses: 0
    Dernier message: 16/02/2009, 15h37
  3. Réponses: 3
    Dernier message: 19/05/2007, 17h19
  4. Devis pour un petit site avec paiement en Paypal ?
    Par hellosct1 dans le forum Devis
    Réponses: 1
    Dernier message: 14/02/2007, 13h50

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