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

PHP & Base de données Discussion :

Script récupération données bouton acheter Paypal


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut Script récupération données bouton acheter Paypal
    bonjour, depuis hier je me casse la tête avec ce fameux code de récupération de données paypal .

    J'ai mis un bouton acheter sur mon site, je test le paiement, valide, et quand j'atteris sur la page que j'ai indiquée en cas de paiement confirmé, je recois bien le mail de notification, le paiement apparait bien sur mon compte paypal, mais aucune données n' est enregistrée dans ma base de données ...

    Voici mon code recupéré sur

    https://www.paypaltech.com/SG2/PHPDbSQL.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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
     
    <?php
     
     
     
     
    /////////////////////////////////////////////////
    /////////////Begin Script below./////////////////
    /////////////////////////////////////////////////
     
    // 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 ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
     
     
    // assign posted variables to local variables
    $item_name = $_POST['item_name'];
    $business = $_POST['business'];
    $item_number = $_POST['item_number'];
    $payment_status = $_POST['payment_status'];
    $mc_gross = $_POST['mc_gross'];
    $payment_currency = $_POST['mc_currency'];
    $txn_id = $_POST['txn_id'];
    $receiver_email = $_POST['receiver_email'];
    $receiver_id = $_POST['receiver_id'];
    $quantity = $_POST['quantity'];
    $num_cart_items = $_POST['num_cart_items'];
    $payment_date = $_POST['payment_date'];
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $payment_type = $_POST['payment_type'];
    $payment_status = $_POST['payment_status'];
    $payment_gross = $_POST['payment_gross'];
    $payment_fee = $_POST['payment_fee'];
    $settle_amount = $_POST['settle_amount'];
    $memo = $_POST['memo'];
    $payer_email = $_POST['payer_email'];
    $txn_type = $_POST['txn_type'];
    $payer_status = $_POST['payer_status'];
    $address_street = $_POST['address_street'];
    $address_city = $_POST['address_city'];
    $address_state = $_POST['address_state'];
    $address_zip = $_POST['address_zip'];
    $address_country = $_POST['address_country'];
    $address_status = $_POST['address_status'];
    $item_number = $_POST['item_number'];
    $tax = $_POST['tax'];
    $option_name1 = $_POST['option_name1'];
    $option_selection1 = $_POST['option_selection1'];
    $option_name2 = $_POST['option_name2'];
    $option_selection2 = $_POST['option_selection2'];
    $for_auction = $_POST['for_auction'];
    $invoice = $_POST['invoice'];
    $custom = $_POST['custom'];
    $notify_version = $_POST['notify_version'];
    $verify_sign = $_POST['verify_sign'];
    $payer_business_name = $_POST['payer_business_name'];
    $payer_id =$_POST['payer_id'];
    $mc_currency = $_POST['mc_currency'];
    $mc_fee = $_POST['mc_fee'];
    $exchange_rate = $_POST['exchange_rate'];
    $settle_currency  = $_POST['settle_currency'];
    $parent_txn_id  = $_POST['parent_txn_id'];
    $pending_reason = $_POST['pending_reason'];
    $reason_code = $_POST['reason_code'];
     
     
    // subscription specific vars
     
    $subscr_id = $_POST['subscr_id'];
    $subscr_date = $_POST['subscr_date'];
    $subscr_effective  = $_POST['subscr_effective'];
    $period1 = $_POST['period1'];
    $period2 = $_POST['period2'];
    $period3 = $_POST['period3'];
    $amount1 = $_POST['amount1'];
    $amount2 = $_POST['amount2'];
    $amount3 = $_POST['amount3'];
    $mc_amount1 = $_POST['mc_amount1'];
    $mc_amount2 = $_POST['mc_amount2'];
    $mc_amount3 = $_POST['mcamount3'];
    $recurring = $_POST['recurring'];
    $reattempt = $_POST['reattempt'];
    $retry_at = $_POST['retry_at'];
    $recur_times = $_POST['recur_times'];
    $username = $_POST['username'];
    $password = $_POST['password'];
     
    //auction specific vars
     
    $for_auction = $_POST['for_auction'];
    $auction_closing_date  = $_POST['auction_closing_date'];
    $auction_multi_item  = $_POST['auction_multi_item'];
    $auction_buyer_id  = $_POST['auction_buyer_id'];
     
     
     
    //DB connect creds and email 
    $notify_email =  "monmail@hotmail.fr";         //email address to which debug emails are sent to
    $DB_Server = "yery"; //your MySQL Server
    $DB_Username = "yrtyy"; //your MySQL User Name
    $DB_Password = "rtyery"; //your MySQL Password
    $DB_DBName = "rtyey"; //your MySQL Database Name
     
     
    if (!$fp) {
    // HTTP ERROR
    } else {
    fputs ($fp, $header . $req);
    while (!feof($fp)) {
    $res = fgets ($fp, 1024);
    if (strcmp ($res, "VERIFIED") == 0) {
     
     
     
    //create MySQL connection
    $Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password)
    or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());
     
     
    //select database
    $Db = @mysql_select_db($DB_DBName, $Connect)
    or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());
     
     
    $fecha = date("m")."/".date("d")."/".date("Y");
    $fecha = date("Y").date("m").date("d");
     
    //check if transaction ID has been processed before
    $checkquery = "select txnid from paypal_payment_info where txnid='".$txn_id."'";
    $sihay = mysql_query($checkquery) or die("Duplicate txn id check query failed:<br>" . mysql_error() . "<br>" . mysql_errno());
    $nm = mysql_num_rows($sihay);
    if ($nm == 0){
     
    //execute query
     
     
     
        if ($txn_type == "cart"){
        $strQuery = "insert into paypal_payment_info(paymentstatus,buyer_email,firstname,lastname,street,city,state,zipcode,country,mc_gross,mc_fee,memo,paymenttype,paymentdate,txnid,pendingreason,reasoncode,tax,datecreation) values ('".$payment_status."','".$payer_email."','".$first_name."','".$last_name."','".$address_street."','".$address_city."','".$address_state."','".$address_zip."','".$address_country."','".$mc_gross."','".$mc_fee."','".$memo."','".$payment_type."','".$payment_date."','".$txn_id."','".$pending_reason."','".$reason_code."','".$tax."','".$fecha."')";
     
         $result = mysql_query($strQuery) or die("Cart - paypal_payment_info, Query failed:<br>" . mysql_error() . "<br>" . mysql_errno());
         for ($i = 1; $i <= $num_cart_items; $i++) {
             $itemname = "item_name".$i;
             $itemnumber = "item_number".$i;
             $on0 = "option_name1_".$i;
             $os0 = "option_selection1_".$i;
             $on1 = "option_name2_".$i;
             $os1 = "option_selection2_".$i;
             $quantity = "quantity".$i;
     
             $struery = "insert into paypal_cart_info(txnid,itemnumber,itemname,os0,on0,os1,on1,quantity,invoice,custom) values ('".$txn_id."','".$_POST[$itemnumber]."','".$_POST[$itemname]."','".$_POST[$on0]."','".$_POST[$os0]."','".$_POST[$on1]."','".$_POST[$os1]."','".$_POST[$quantity]."','".$invoice."','".$custom."')";
             $result = mysql_query($struery) or die("Cart - paypal_cart_info, Query failed:<br>" . mysql_error() . "<br>" . mysql_errno());
     
         }
        }
     
     
     
        else{
         $strQuery = "insert into paypal_payment_info(paymentstatus,buyer_email,firstname,lastname,street,city,state,zipcode,country,mc_gross,mc_fee,itemnumber,itemname,os0,on0,os1,on1,quantity,memo,paymenttype,paymentdate,txnid,pendingreason,reasoncode,tax,datecreation) values ('".$payment_status."','".$payer_email."','".$first_name."','".$last_name."','".$address_street."','".$address_city."','".$address_state."','".$address_zip."','".$address_country."','".$mc_gross."','".$mc_fee."','".$item_number."','".$item_name."','".$option_name1."','".$option_selection1."','".$option_name2."','".$option_selection2."','".$quantity."','".$memo."','".$payment_type."','".$payment_date."','".$txn_id."','".$pending_reason."','".$reason_code."','".$tax."','".$fecha."')";
         $result = mysql_query("insert into paypal_payment_info(paymentstatus,buyer_email,firstname,lastname,street,city,state,zipcode,country,mc_gross,mc_fee,itemnumber,itemname,os0,on0,os1,on1,quantity,memo,paymenttype,paymentdate,txnid,pendingreason,reasoncode,tax,datecreation) values ('".$payment_status."','".$payer_email."','".$first_name."','".$last_name."','".$address_street."','".$address_city."','".$address_state."','".$address_zip."','".$address_country."','".$mc_gross."','".$mc_fee."','".$item_number."','".$item_name."','".$option_name1."','".$option_selection1."','".$option_name2."','".$option_selection2."','".$quantity."','".$memo."','".$payment_type."','".$payment_date."','".$txn_id."','".$pending_reason."','".$reason_code."','".$tax."','".$fecha."')") or die("Default - paypal_payment_info, Query failed:<br>" . mysql_error() . "<br>" . mysql_errno());
        }
     
     
        // send an email in any case
     echo "Verified";
         mail($notify_email, "VERIFIED IPN", "$res\n $req\n $strQuery\n $struery\n  $strQuery2");
    }
    else {
    // send an email
    mail($notify_email, "VERIFIED DUPLICATED TRANSACTION", "$res\n $req \n $strQuery\n $struery\n  $strQuery2");
    }
     
        //subscription handling branch
        if ( $txn_type == "subscr_signup"  ||  $txn_type == "subscr_payment"  ) {
     
          // insert subscriber payment info into paypal_payment_info table
          $strQuery = "insert into paypal_payment_info(paymentstatus,buyer_email,firstname,lastname,street,city,state,zipcode,country,mc_gross,mc_fee,memo,paymenttype,paymentdate,txnid,pendingreason,reasoncode,tax,datecreation) values ('".$payment_status."','".$payer_email."','".$first_name."','".$last_name."','".$address_street."','".$address_city."','".$address_state."','".$address_zip."','".$address_country."','".$mc_gross."','".$mc_fee."','".$memo."','".$payment_type."','".$payment_date."','".$txn_id."','".$pending_reason."','".$reason_code."','".$tax."','".$fecha."')";
          $result = mysql_query($strQuery) or die("Subscription - paypal_payment_info, Query failed:<br>" . mysql_error() . "<br>" . mysql_errno());
     
     
             // insert subscriber info into paypal_subscription_info table
            $strQuery2 = "insert into paypal_subscription_info(subscr_id , sub_event, subscr_date ,subscr_effective,period1,period2, period3, amount1 ,amount2 ,amount3,  mc_amount1,  mc_amount2,  mc_amount3, recurring, reattempt,retry_at, recur_times, username ,password, payment_txn_id, subscriber_emailaddress, datecreation) values ('".$subscr_id."', '".$txn_type."','".$subscr_date."','".$subscr_effective."','".$period1."','".$period2."','".$period3."','".$amount1."','".$amount2."','".$amount3."','".$mc_amount1."','".$mc_amount2."','".$mc_amount3."','".$recurring."','".$reattempt."','".$retry_at."','".$recur_times."','".$username."','".$password."', '".$txn_id."','".$payer_email."','".$fecha."')";
            $result = mysql_query($strQuery2) or die("Subscription - paypal_subscription_info, Query failed:<br>" . mysql_error() . "<br>" . mysql_errno());
     
     
                 mail($notify_email, "VERIFIED IPN", "$res\n $req\n $strQuery\n $struery\n  $strQuery2");
     
        }
    }
     
    // if the IPN POST was 'INVALID'...do this
     
     
    else if (strcmp ($res, "INVALID") == 0) {
    // log for manual investigation
     
    mail($notify_email, "INVALID IPN", "$res\n $req");
    }
    }
    fclose ($fp);
    }
    ?>
    Je reçois aussi également le mail
    Sujet : INVALID IPN
    message :

    INVALID
    cmd=_notify-validate

    Merci pour votre aide précieuse .

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    Peut etre que le code du bouton peut vous être utile, enfin je sais pas mais bon ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
    			<input type="hidden" name="cmd" value="_s-xclick">
    			<input type="hidden" name="hosted_button_id" value="WPHGXX63LW3HN">
    			<table align="center">
    			<tr><td><input type="hidden" name="on0" value="duree">duree</td></tr><tr><td><select name="os0">
    				<option value="1 semaine">1 semaine €0,10</option>
    				<option value="2 semaines">2 semaines €0,20</option>
    				<option value="3 semaines">3 semaines €0,30</option>
    			</select> </td></tr>
    			</table>
    			<input type="hidden" name="currency_code" value="EUR">
    			<input type="image" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !">
    			<img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
    		</form>
    Merci encore

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    J' ai trouvé également ce code sur le site de paypal, mais je constate les memes problèmes :

    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
     
    // PHP 4.1
     
    // 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";
    $fp = fsockopen ('ssl://www.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'];
     
    if (!$fp) {
    // HTTP ERROR
    echo 'ok 0';
    } 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 'ok 1';
    }
    else if (strcmp ($res, "INVALID") == 0) {
    // log for manual investigation
    echo 'ok 2';
    }
    }
    fclose ($fp);
    }
    ?>
    Enfaite je n'ai pas encore exprimé mes souhaits concernant ce code :

    Je voudrais simplement tester si le paiement a bien été effectué, si oui, alors j'affiche le contenu accessible seulement apres paiement .

    J' ai juste besoins de savoir si le paiement est bien validé, et recuperer les details du paiement (nom, prénom, n° transaction, etc ...) .
    Apres pour le mail de confirmation, entrer les données dans la bdd, je me débrouille

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    apriori ce sujet ne fait pas débat ...

    Dans ce cas peut être qu'en fait paypal ne serait pas la bonne méthode, que me conseillez vous dans ce cas ?

    merci encore par avance

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    bonjour,
    un code de bouton paypal
    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
     
    <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="xxxxxxxxxxx@yyy.fr">
    <input type="hidden" name="item_name" value="<?php print($categorie);?>">
    <input type="hidden" name="item_number" value="<?php print($nom);?>">
    <input type="hidden" name="amount" value="<?php print($prix);?>">
    <input type="hidden" name="page_style" value="PayPal">
    <input type="hidden" name="no_shipping" value="0">
    <input type="hidden" name="return" value="http://www.ton_site/confirm_paiement.php">
    <input type="hidden" name="cancel_return" value="http://www.ton_site.fr/annule_transaction.php">
    <input type="hidden" name="no_note" value="1">
    <input type="hidden" name="currency_code" value="EUR">
    <input type="hidden" name="lc" value="FR">
    <input type="hidden" name="bn" value="PP-BuyNowBF">
    <input type="image" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée">
    <img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
    </form>
    ce code est opérationnel; il faut juste créer les pages de renvoi.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    j' ai essayé le code de ton bouton, en gardant le code php de récupération, quand je clique sur retour au site marchand, je tombe bien sur la page que je veux, mais reçois encore ce mail INVALID ...

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    Persnne ne saurait m' expliquer le fonctionnement de ces codes .
    Car j'ai du mal à comprendre, et donc je ne sais pas comment le faire marcher . Rien ne s'enregistre dans la base de données, le mail invalid ipn m'est envoyé au retour sur site marchand, donc je n'arrive pas à recuperer les données envoyées qui me permettraient de faire des tests .

    Si le paiement est validé, alors j'affiche le contenu, sinon, message d'erreur voila ce que je veux .

    Sa doit pas etre grand chose, j'ai juste besoin d'une petite aide de quelqu'un qui a réussi à faire marcher ces codes

    Merci

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    Un p'tit up .

    Si paypal n'est pas la solution la plus simple, alors peut etre en existe t il de meilleurs ?

    Merci encore par avance pour vos réponses .

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    bonjour,
    tu mets tes infos en session; si le paiement est validé alors le retour sur ton site se fait par la balise
    <input type="hidden" name="return" value="http://www.ton_site/confirm_paiement.php">
    dans cette page, tu récupère tes infos de session et tu mets en bdd.
    si le paiement est annulé ou ne se fait pas c'est la balise
    [<input type="hidden" name="cancel_return" value="http://www.ton_site.fr/annule_transaction.php">
    dans cette page tu effaces tes infos de session

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    oui, et si quelqu'un poste le formulaire, et ensuite va sur la page de validation paiement sans payer, alors il a acces au contenu car la session est enregistrée ...

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    bon et bien faute d' aide, je me suis tourné vers allopass, qui prévoit un code à mettre dans la balise head ...
    Pourquoi paypal ne prévoi pas cela, ce serait tellement plus simple ... bref . merci quand même

  12. #12
    Membre éclairé
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 363
    Par défaut
    UP

    et je suis surpris de ne pas trouver ici d'autres questions sur ce problème somme toute ultra classique.

    Je m'en vais donc gougler un peu et je reviens...

    EDIT
    J'ai déjà trouvé ça :
    https://www.paypal-france.fr/blog/ti...bouton-paypal/

    Maintenant, je teste et je reviens...

  13. #13
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    que ce soit paypal ou autre banque... il est évident qu'un hackeur pourrait évidemment lire le code de la page et trouver dans les infos en hidden (cachées) du formulaire le lien de validation et l'utiliser directement...

    la solution est simple... les sessions php

    tu y stokes les infos liées à la commande...
    quand tu communiques avec paypal tu dois parser le message que ça te renvoie et comparer avec un certains nombre de ces valeurs dont tout ce qui identifie l'échange (utilisateur, prix, id de la transaction, etc...)

    lis les docs et particulièrement ça (en anglais)


  14. #14
    Membre éclairé
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 363
    Par défaut
    Ah, merci Eric.

    J'avais vu ici ou là des trucs sur l'IPN, je vais lire tout ça et poster ici un (nouveau) message quand mon code marchera. Cela fait deux jours que je suis sur ce truc tout con, et ça me gonfle un peu. J'étais sûr de trouver le bout de code qui va bien du 1er coup et je ne l'ai pas encore trouvé. Donc je l'écris, après je le teste, et après je le reteste avec toutes les causes d'erreur possibles dans le code (c'est ma façon de bosser, j'aime les messages d'erreur explicites, pas seulement "Trap to 4" ou "erreur à l'ouverture du fichier gnagnagna" ou "Internet Exploseur a cessé de fonctionner"...)

    Ensuite j'écris un tuto style Paypal en php pour les Nuls et je postule au Goncourt

    PS : j'ajoute que, pour en savoir plus sur ma façon d'aimer les messages d'erreur (et leur (indi)gestion), on peut aller voir ici : http://www.didiermorandi.fr/vbscript/

Discussions similaires

  1. [PayPal] Bouton Acheter PayPal + Retour sur site après paiement
    Par jerem_orga dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 13/02/2015, 12h53
  2. click bouton acheter = envoi simultané du formulaire paypal et l'envoi d'un mail
    Par forbidden fruit dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/11/2009, 22h56
  3. Réponses: 8
    Dernier message: 08/08/2009, 21h38
  4. Bouton acheter paypal
    Par argentbiz dans le forum E-Commerce
    Réponses: 3
    Dernier message: 06/09/2008, 17h46
  5. probleme récupération donnée dans script xsl
    Par jmacdev dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 12/05/2006, 17h37

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