+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre Expert
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2004
    Messages
    3 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2004
    Messages : 3 448
    Points : 1 198
    Points
    1 198

    Par défaut [PAYPAL/IPN] afficher les variables $_POST

    Bonjour tout le monde,

    Je suis occupé à intégrer à un site un moyen de paiement via Paypal.

    J'ai lu pas mal d'informations sur la mise en place.

    J'ai donc le bouton dont voici le code :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    	<select name="amount">
    		<option value=''>Choose your category</option>
    		<option value='400'>I'm a student</option>
    		<option value='500'>I'm NOT a student</option>
    	</select>
    	<input name="currency_code" type="hidden" value="EUR" />
    	<input name="shipping" type="hidden" value="0" />
    	<input name="tax" type="hidden" value="0.00" />
    	<input name="return" type="hidden" value="http://164.15.112.38/congres/paypal_ok.php" />
    	<input name="cancel_return" type="hidden" value="http://164.15.112.38/congres/paypal_ok.php" />
    	<input name="notify_url" type="hidden" value="http://164.15.112.38/congres/Fonctions/notify.php" />
    	<input name="cmd" type="hidden" value="_xclick" />
    	<input name="business" type="hidden" value="moncompte" />
    	<input name="item_name" type="hidden" value="Peroxidase Meeting 2011" />
    	<input name="no_note" type="hidden" value="1" />
    	<input name="lc" type="hidden" value="EN" />
    	<input name="bn" type="hidden" value="PP-BuyNowBF" />
    	<input name="custom" type="hidden" value="ID_ACHETEUR" />
    	<input alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée" name="submit" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynow_LG.gif" type="image" /><img src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" border="0" alt="" width="1" height="1" />
     
    </form>
    Ma question est au niveau notify, je n'arrive pas à afficher à l'écran les variables $_POST :

    Code :
    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
    <?php
     
    // read the post from PayPal system and add 'cmd'
    $req = 'cmd=_notify-validate';
     
    foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
    $req .= "&$key=$value";
    }
     
    // post back to PayPal system to validate
    $header  = "POST /cgi-bin/webscr HTTP/1.0\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
     
      	//If testing on Sandbox use:
    	//$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
     
    $fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
     
     
    if (!$fp) {
    // HTTP ERROR
    } else {
    fputs ($fp, $header . $req);
    while (!feof($fp)) {
    $res = fgets ($fp, 1024);
    if (strcmp ($res, "VERIFIED") == 0) {
    // check the payment_status is Completed
    // check that txn_id has not been previously processed
    // check that receiver_email is your Primary PayPal email
    // check that payment_amount/payment_currency are correct
    // process payment
     
     
    // echo the response
    echo "The response from IPN was: <b>" .$res ."</b><br><br>";
     
    //loop through the $_POST array and print all vars to the screen.
     
    foreach($_POST as $key => $value){
     
            echo $key." = ". $value."<br>";
     
     
     
    }
     
     
    }
    else if (strcmp ($res, "INVALID") == 0) {
    // log for manual investigation
     
    // echo the response
    echo "The response from IPN was: <b>" .$res ."</b>";
     
      }
     
    }
    fclose ($fp);
    }
    ?>
    Merci d'avance pour votre aide.

    beegees

  2. #2
    Invité de passage
    Homme Profil pro
    Webmaster
    Inscrit en
    septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : septembre 2009
    Messages : 2
    Points : 2
    Points
    2

    Par défaut Manque une variable à passer

    Bonjour,
    Même si le post date de 2010, une réponse tardive permet toujours d'aider une autre personne.
    Afin de récupérer les variables $_POST du notify de l'IPN, vous devez passer en paramètre la variable "rm" dans votre formulaire transmis à PayPal:
    <input type="hidden" name="rm" value="2">
    => champ « rm ». S’il a pour valeur 1, les valeurs sont passées en $_GET au script sensé traiter l’IPN ; s’il a pour valeur 2, elles seront passées en $_POST.

    J'avais trouvé cette solution sur un autre forum et cela m'avait dépanné.
    Bon code à tous

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •