Aller au contenu

Sujets conseillés

Posté

Bonsoir,

Mes acheteurs peuvent ajouter des produits dans mon panier. Jusque là, rien de très compliqué.

Après achat, je voudrais que l'acheteur soit redirigé vers une page de confirmation. (c fè)

Mais sur celle-ci, je voudrais que le récapitulatif de la transaction (les noms des produits achetés...) s'affichent.

J'ai testé le code que paypal propose tel quel, mais celui-ci ne fonctionne pas. Dois-je configurer quelque chose ?

Aussi, les noms des produits sont séparés par des virgules dans la variable $itemname ??

Un tout grand merci,

Cyril

Posté

Bonjour Cyrille,

Tu peux donner l'URL de la page de confirmation de ton choix, c'est à dire qu'il te faudra donner une URL de page en Php dans laquelle tu peux afficher ce que tu veux si la page de PayPal ne te convient pas.

Dan

Posté

Merci,

mais ma page de confirmation en php est déjà faite... mais je voudrais afficher les informations de la transaction (les noms de produits achetés...)

Toutes ces informations dépendent de paypal.

Il faut donc que je puisse communiquer avec le script de paypal..

et leur script tel quel ne fonctionne pas...

Faut-il configurer quelque chose ?

Le code :


<?php
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-synch';

$tx_token = $_GET['tx'];
$auth_token = "GX_sTf5bW3wxRfFEbgofs88nQxvMQ7nsI8m21rzNESnl_79ccFTWj2aPgQ0";
$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 .= "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 possible, securely post back to paypal using HTTPS
// Your PHP server will need to be SSL enabled
// $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);

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);
}
// 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
$firstname = $keyarray['first_name'];
$lastname = $keyarray['last_name'];
$itemname = $keyarray['item_name'];
$amount = $keyarray['payment_gross'];

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: $itemname</li>\n");
echo ("<li>Amount: $amount</li>\n");
echo ("");
}
else if (strcmp ($lines[0], "FAIL") == 0) {
// log for manual investigation
}

}

fclose ($fp);

?>

Bien merci

  • 11 months later...

Veuillez vous connecter pour commenter

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



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