Aller au contenu

Problème PayPal / TDP


Bernard79

Sujets conseillés

Salut à tous,

Je seche sur un probleme de script php depuis quelques jours, si quelqu'un pouvait mindiquer une solution, vous feriez un heureux!

Je crée un site marchand passant par paypal, je voudrais récupérer sur une des mes pages php les informations sur les transactions de chaque achat et les afficher aux clients. Je passe par paypal et apres avoir lu bcp de documentation, je me suis penché sur le PDT proposé par paypal. Je débute en php et cela fait plusieurs jours que je cale sur un probleme. J'arrive à récuperer des infos du client une fois la transition faites, mais pas toutes les infos. J'ai utilise le script php fournit par paypal mais bien qu'arrivant à récupérer et afficher firstname, lastname et son mail, j'ai aucune valeur pour item_name et item_number.

je n'arrive à récuperer aucune info apparement entrées dans mes variables lors de la création de mes paniers et les afficher.

Voici mon script PHP :

<?php 

$req = "cmd=_notify-synch";

$tx_token = $_GET['tx'];
$auth_token = "702O72QbKhRsrntfSmjHIH2WDaofU7C1n9eE0kvXTYbcQKxWwYjRcqhVR5i";
$req .= "&tx=$tx_token&at=$auth_token";


$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 ('www.paypal.com', 80, $errno, $errstr, 30);

if (!$fp) {

} else {
fputs ($fp, $header . $req);


$res = '';
$headerdone = false;
while (!feof($fp)) {
$line = fgets ($fp, 1024);
if (strcmp($line, "\r\n") == 0) {

$headerdone = true;
}
else if ($headerdone)
{

$res .= $line;
}
}


$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'];
$itemname1 = $keyarray['item_name1'];
$amount = $keyarray['payment_gross'];
$itemnumber = $keyarray['item_number'];
$adress = $keyarray['adress_city'];
$payeurmail = $keyarray['payer_email'];
$option = $keyarray['option_name1'];
echo ("<p><h3>Thank you for your purchase!</h3></p>");

echo ("<b>Payment Details</b><br>\n");
echo ("<li>Name: $firstname $lastname</li>\n");
echo ("<li>Item name1: $itemname1</li>\n");
echo ("<li>Item number: $itemnumber</li>\n");
echo ("<li>Ville: $adress</li>\n");
echo ("<li>Mail du payeur: $payeurmail</li>\n");
echo ("<li>Amount: $amount</li>\n");
echo ("");

if ($lastname == "casiro")
echo ("<p><h3>Casi t'es un gros cochon</h3></p>");
}
else if (strcmp ($lines[0], "FAIL") == 0) {

}

}

fclose ($fp);

?>

Your transaction has been completed, and a receipt for your purchase has been emailed to you.<br> You may log into your account at <a href='https://www.paypal.com'>www.paypal.com</a> to view details of this transaction.<br>

Si vous pouviez m'indiquer une solution, je vous serez tres reconnaissant. merci d'avance.

Julien

Lien vers le commentaire
Partager sur d’autres sites

Les variables item_name et item_number ne doient pas exister si tu obtiens aucune valeur au retour de Paypal. Tu peux utiliser les variables "custom" et "invoice" pour récupérer des infos persos. Paypal ne traitera pas ces infos lors du paiement. Tu pourras les recupérer tel quel sur ton script PDT et les utiliser pour affichage ou autre.

J'ai vu sur ton code la valeur de "auth_token", si c'est celle qui t'as été donnée par Paypal, dans aucun cas tu ne dois la fournir en clair. Qqn de malhonnête pourrai s'en servir.

:)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...