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 :

paypal recupération données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 178
    Par défaut paypal recupération données
    bonjour
    je galère depuis plusieurs jours, je n'arrive pas à comprendre pour récupérer les données.

    html du bouton

    Code HTML : 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.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">
    <input type="hidden" name="cmd" value="_s-xclick">
    <input type="hidden" name="hosted_button_id" value="JX2V2J92">
    <table>
    <tr><td><input type="hidden" name="on0" value="Achat TutoCode">Achat TutoCode</td></tr><tr><td><select name="os0">
    	<option value="1 Code">1 Code €1.00 EUR</option>
    	<option value="5 Codes">5 Codes €5.00 EUR</option>
     
    </select> </td></tr>
    </table>
    <input type="hidden" name="currency_code" value="EUR">
    <input type="image" src="https://www.sandbox.paypal.com/fr_XC/i/btn/btn_buynow_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.sandbox.paypal.com/fr_XC/i/scr/pixel.gif" width="1" height="1">
    </form>

    après je prend l'option
    Dirigez vos clients vers cette URL lorsqu’ils terminent leur paiement

    le code de cette page (c'est un ancien code en 2010) mais ne fonctionne plus.
    Leur doc comprend absolument rien avec leur api et je suis nul en anglais.

    Quelqu'un peut m'aider pour récupérer tous les variable qui est sont en bas: item_name ?

    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
    // read the post from PayPal system and add 'cmd'
    $req = 'cmd=_notify-synch';
     
    $tx_token = $_GET['tx'];
     
    //test sandbox 
    $auth_token = "AFcWxV21C7fd0v3bYC1AoAFPVzeEN1nQSdhqib.d4wim1kr"; 
     
    $req .= "&tx=$tx_token&at=$auth_token";
     
    // post back to PayPal system to validate
     
    $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
    //$header .= "Host: www.paypal.com:443\r\n";// pas utilisé
    $header .= "Host: www.sandbox.paypal.com:443\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
    //$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
    //$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
    $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);  //test sandbox
     
     
    if (!$fp) {
    // HTTP ERROR
    } else {
    fputs ($fp, $header . $req);
    // read the body data
    $res = '';
    $headerdone = false;
    while (!feof($fp)) {
    $line = fgets ($fp, 1024);
    if (strcmp($line, "\r\n") == 0) {
    // read the header
    $headerdone = true;
    }
    else if ($headerdone)
    {
    // header has been read. now read the contents
    $res .= $line;
    }
    }
     
    // parse the data
    $lines = explode("\n", $res);
    $keyarray = array();
    if (strcmp ($lines[0], "SUCCESS") == 0) {
    for ($i=1; $i<count($lines);$i++){
    list($key,$val) = explode("=", $lines[$i]);
    $keyarray[urldecode($key)] = urldecode($val);
    }
     
    $firstname = $keyarray['first_name'];
    $lastname = $keyarray['last_name'];
    echo $itemname = $keyarray['item_name'];
    echo $payment_status = $keyarray['payment_status']; // statut refusé ou accepté
    $payment_amount = $keyarray['mc_gross']; // montant de l'article
    $payment_currency = $keyarray['mc_currency'];// en euros 
    $txn_id = $keyarray['txn_id'];// identifiant
    $receiver_email = $keyarray['payer_email'];//mail paypal de paiement
    $user_payment = $keyarray['custom'];

  2. #2
    Membre confirmé
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 178
    Par défaut
    une aide merci
    j'ai trouvé un autre code
    mais sur echo $res j'ai :
    HTTP/1.1 400 Bad Request Connection: close Content-Length: 11 content-type: text/plain; charset=utf-8 Bad Request
    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
    // prépare la requête de vérification
    $req = "cmd=_notify-validate";
     
    // ajoute le message IPN au format NVP à la requête de vérification
    foreach ($_POST as $key => $value) {
        $value = urlencode(stripslashes($value));
        $req .= '&$key=$value';
    }
     
     
    // définition des headers pour la requête de vérification
    $header  = "POST /cgi-bin/webscr HTTP/1.0rn";
     
    // test
    $header .= "Host: www.sandbox.paypal.com:443rn";
     
    // production
    //$header .= "Host: ipnpb.paypal.com:443rn";
     
    $header .= "Content-Type: application/x-www-form-urlencodedrn";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
     
     
    // Ouverture du socket
     
    // test
    $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
     
    // production
    //$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);
     
    // s'il y a une erreur lors de l'ouverture du socket
    if (!$fp) {
    	echo " ERREUR";
        // on s'envoie un mail pour être informé de l'erreur
        $msg = 'Erreur de socket, l\'url n\'a pas pu être ouverte';
        mail('payments@monmail.fr', 'erreur socket', $msg);
    }
     
    else {
     
        // on post la requête de vérification
        fputs ($fp, $header . $req);
     
        // créé une boucle tant qu'on est pas arrivé à la fin du fichier
        while (!feof($fp)) {
            // lit la réponse de paypal
      echo    $res = fgets ($fp, 1024);
     
            // si paypal répond VERIFIED,
            // tout s'est bien déroulé et on peut procéder à nos traitements
            if (strcmp ($res, 'VERIFIED') == 0) {
                // type de transaction
                // $_POST['txn_type']
     
                // mail du compte paypal à qui est destiné le paiement
               echo $receiver_email = $_POST['receiver_email'];
     
                // montant
              echo  $payment_amount = $_POST['mc_gross'];
     
                // id de la transaction
                $txn_id = $_POST['txn_id'];
     
                // champ personnalisé
                $idcpt =  $_POST['custom'];
     
    			//nom de l'article acheter
    		echo	$itemname = $_POST['os0'];

Discussions similaires

  1. recupération données fichier texte
    Par Elstak dans le forum C
    Réponses: 2
    Dernier message: 25/03/2007, 00h28
  2. [select-option] recupération données
    Par carusier dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/03/2007, 10h17
  3. recupération donneés formulaire
    Par WEBANNONCE dans le forum Flash
    Réponses: 9
    Dernier message: 20/12/2006, 15h18
  4. [VB6] Recupération données avec FsCommand
    Par Menthe_a_l_eau dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 16/03/2006, 11h42
  5. Réponses: 5
    Dernier message: 06/01/2006, 15h59

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