File "paypal_main.php"
Full Path: /home/analogde/www/js/paypal/paypal_main.php
File size: 3.9 KB
MIME-type: text/x-php
Charset: utf-8
<?php
session_start();
include("paypal_api.php");
//$manager = new Manager($connexion);
if (!isset($_SESSION['Id_client'])) {
header("location:paiement.php");
}
$items="";
$ItemQty=1; //Nombre de produit acheté
$ItemTotalPrice=0;
$ItemName='Achat';
$ItemNumber=$_SESSION['Id_client'];
$ItemDesc='Achat paypal';
$ItemPrice=$_SESSION['Prix_total'];
$i=0;
$items.="&L_PAYMENTREQUEST_0_NAME".$i."=".urlencode($ItemName);
$items.="&L_PAYMENTREQUEST_0_NUMBER".$i."=".urlencode($ItemNumber);
$items.="&L_PAYMENTREQUEST_0_DESC".$i."=".urlencode($ItemDesc);
$items.="&L_PAYMENTREQUEST_0_AMT".$i."=".urlencode($ItemPrice);
$items.="&L_PAYMENTREQUEST_0_QTY".$i."=". urlencode($ItemQty);
$ItemTotalPrice = $_SESSION['Prix_total'];
//Other important variables like tax, shipping cost
$TotalTaxAmount = 0.0; //Sum of tax for all items in this order.
$HandalingCost = 0.00; //Handling cost for this order.
$InsuranceCost = 0.00; //shipping insurance cost for this order.
$ShippinDiscount = 0.00; //Shipping discount for this order. Specify this as negative number.
$ShippinCost = 0.00; //livraison Although you may change the value later, try to pass in a shipping amount that is reasonably accurate.
//Grand total including all tax, insurance, shipping cost and discount
$GrandTotal = ($ItemTotalPrice + $TotalTaxAmount + $HandalingCost + $InsuranceCost + $ShippinCost + $ShippinDiscount);
$PayPalCurrencyCode='EUR';
$requete = construit_url_paypal();
$paiement_cb="";
if (isset($_POST['paiement']) && ($_POST['paiement'] == 2 || $_POST['paiement'] == 3)) {
$paiement_cb = "&SOLUTIONTYPE=Sole&LANDINGPAGE=Billing";//paiement par CB
}
$url="http://127.0.0.1:8081/chapitre11/Exercice8_Paypal/"; //A changer avec votre site
$requete = $requete."&METHOD=SetExpressCheckout". //SetExpressCheckout
"&CANCELURL=".urlencode($url."paypal_cancel.php").
"&RETURNURL=".urlencode($url."PaiementOK.php").
$items.
'&NOSHIPPING=0'. //set 1 to hide buyer's shipping address, in-case products that do not require shipping
'&PAYMENTREQUEST_0_ITEMAMT='.urlencode($ItemTotalPrice).
'&PAYMENTREQUEST_0_TAXAMT='.urlencode($TotalTaxAmount).
'&PAYMENTREQUEST_0_SHIPPINGAMT='.urlencode($ShippinCost).
'&PAYMENTREQUEST_0_HANDLINGAMT='.urlencode($HandalingCost).
'&PAYMENTREQUEST_0_SHIPDISCAMT='.urlencode($ShippinDiscount).
'&PAYMENTREQUEST_0_INSURANCEAMT='.urlencode($InsuranceCost).
'&PAYMENTREQUEST_0_AMT='.urlencode($GrandTotal).
'&PAYMENTREQUEST_0_CURRENCYCODE='.urlencode($PayPalCurrencyCode).
'&LOCALECODE=FR'.
'&LOGOIMG=logo2.gif'. //site logo
'&CARTBORDERCOLOR=e2e2e2'. //border color of cart
'&ALLOWNOTE=1'.$paiement_cb;
echo '<hr/>'.$requete;
$ch = curl_init($requete);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resultat_paypal = curl_exec($ch);
if (!$resultat_paypal)
{echo "<p>Erreur</p><p>".curl_error($ch)."</p>";}
else
{
$liste_param_paypal = recup_param_paypal($resultat_paypal); // Lance notre fonction qui dispatche le résultat obtenu en un array
// Si la requête a été traitée avec succès
if ($liste_param_paypal['ACK'] == 'Success')
{
// Redirige le visiteur sur le site de PayPal
header("Location: https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=".$liste_param_paypal['TOKEN']);
// EN PRODUCTION
//header("Location: https://www.paypal.com/webscr&cmd=_express-checkout&token=".$liste_param_paypal['TOKEN']);
exit();
}
else // En cas d'échec, affiche la première erreur trouvée.
{echo "<p>Erreur de communication avec le serveur PayPal.<br />".$liste_param_paypal['L_SHORTMESSAGE0']."<br />".$liste_param_paypal['L_LONGMESSAGE0']."</p>";}
}
curl_close($ch);