Files
2026-05-13 09:43:32 -04:00

277 lines
9.4 KiB
PHP

<?php
session_start();
ob_start();
if (!empty($_GET['lang']))
$strLangue = $_GET['lang'];
else
$strLangue = 'fr';
require_once('../PPBootStrap.php');
require_once('../../../php/inc_start_time.php');
require_once('../../../php/inc_fonctions.php');
require_once('../../../php/inc_fx_panier.php');
$tabPanier = fxlistPanier($_SESSION['no_panier']);
$tabAcheteur = $tabPanier[0];
$tabEvenements = $tabPanier[1];
$tabProduits = $tabPanier[2];
$tabEpreuves = $tabPanier[3];
$tabParticipants = $tabPanier[4];
$tabParticipants=$tabParticipants;
$mem_province = fxGetProvinces($tabAcheteur['pro_id'], $strLangue);
$mem_province = fxUnescape($mem_province['pro_paypal']);
$mem_pays = fxGetPays($tabAcheteur['pay_id'], $strLangue);
$mem_pays = fxreplace_accents_string(fxUnescape($mem_pays['pay_nom_' . $strLangue]));
$mem_detailspanier = fxShowPanier($_SESSION['no_panier'], 1, 'paypal', 0, $strLangue);
$mem_email=$tabAcheteur['com_courriel'];
$mem_var_paypal['notifyURL'] = '';
$mem_var_paypal['noShipping'] = 0;
$mem_var_paypal['addressOverride'] = 0;
$mem_var_paypal['reqConfirmShipping'] = 0;
$mem_var_paypal['billingType'] = 'None';
$mem_var_paypal['billingAgreementText'] = '';
$mem_var_paypal['CountryCode'] = 'CA';
$mem_var_paypal['allowNote'] = 0;
//print_r($mem_detailspanier)."<br>"."<br>"."<br>";
$tabTotal = fxTotalPanier($_SESSION['no_panier'], $strLangue);
//print_r($tabAcheteur)."<br>";
//print_r($tabTotal)."<br>"."<br>"."<br>";
$logger = new PPLoggingManager('SetExpressCheckout');
// $url = dirname('http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI']);
$url = dirname(str_replace('/dev', '', $vDomaine) . $_SERVER['REQUEST_URI']);
$returnUrl = "$url/GetExpressCheckout.php";
//$cancelUrl = "$url/SetExpressCheckout.php" ;
$cancelUrl = "$url/annuler.php?lang=". $strLangue ;
//$currencyCode = $_REQUEST['currencyCode'];
$currencyCode = 'CAD';
//$shippingTotal = new BasicAmountType($currencyCode, $_REQUEST['shippingTotal']);
//$handlingTotal = new BasicAmountType($currencyCode, $_REQUEST['handlingTotal']);
//$insuranceTotal = new BasicAmountType($currencyCode, $_REQUEST['insuranceTotal']);
$shippingTotal = new BasicAmountType($currencyCode, 0);
$handlingTotal = new BasicAmountType($currencyCode, 0);
$insuranceTotal = new BasicAmountType($currencyCode, 0);
/*
$address = new AddressType();
$address->CityName = $_REQUEST['city'];
$address->Name = $_REQUEST['name'];
$address->Street1 = $_REQUEST['street'];
$address->StateOrProvince = $_REQUEST['state'];
$address->PostalCode = $_REQUEST['postalCode'];
$address->Country = $_REQUEST['countryCode'];
$address->Phone = $_REQUEST['phone'];
*/
$address = new AddressType();
$address->CityName = fxUnescape($tabAcheteur['com_ville']);
$address->Name = fxUnescape($tabAcheteur['com_prenom']) . ' ' . fxUnescape($tabAcheteur['com_nom']);
$address->Street1 = fxUnescape($tabAcheteur['com_adresse']);
$address->StateOrProvince = $mem_province;
$address->StateOrProvince='New-Brunswick';
$address->PostalCode = strtoupper(fxUnescape($tabAcheteur['com_codepostal']));
$address->Country = $mem_var_paypal['CountryCode'];
$address->CountryName = $mem_pays;
$address->Phone = fxUnescape($tabAcheteur['com_telephone1']);
//echo("<br>");
//print_r($address);
/*
$paymentDetails = new PaymentDetailsType();
$itemTotalValue = 0;
$taxTotalValue = 0;
for($i=0; $i<count($_REQUEST['itemAmount']); $i++) {
$itemAmount = new BasicAmountType($currencyCode, $_REQUEST['itemAmount'][$i]);
$itemTotalValue += $_REQUEST['itemAmount'][$i] * $_REQUEST['itemQuantity'][$i];
$taxTotalValue += $_REQUEST['itemSalesTax'][$i] * $_REQUEST['itemQuantity'][$i];
$itemDetails = new PaymentDetailsItemType();
$itemDetails->Name = $_REQUEST['itemName'][$i];
$itemDetails->Amount = $itemAmount;
$itemDetails->Quantity = $_REQUEST['itemQuantity'][$i];
$itemDetails->ItemCategory = $_REQUEST['itemCategory'][$i];
$itemDetails->Tax = new BasicAmountType($currencyCode, $_REQUEST['itemSalesTax'][$i]);
$paymentDetails->PaymentDetailsItem[$i] = $itemDetails;
}
$orderTotalValue = $shippingTotal->value + $handlingTotal->value +
$insuranceTotal->value +
$itemTotalValue + $taxTotalValue;
$paymentDetails->ShipToAddress = $address;
$paymentDetails->ItemTotal = new BasicAmountType($currencyCode, $itemTotalValue);
$paymentDetails->OrderTotal = new BasicAmountType($currencyCode, $orderTotalValue);
$paymentDetails->TaxTotal = new BasicAmountType($currencyCode, $taxTotalValue);
$paymentDetails->PaymentAction = $_REQUEST['paymentType'];
$paymentDetails->HandlingTotal = $handlingTotal;
$paymentDetails->InsuranceTotal = $insuranceTotal;
$paymentDetails->ShippingTotal = $shippingTotal;
*/
$paymentDetails = new PaymentDetailsType();
$itemTotalValue = 0;
$taxTotalValue = 0;
for ($i = 0; $i < count($mem_detailspanier); $i++)
{
$itemAmount = new BasicAmountType($currencyCode,$mem_detailspanier[$i]['itemAmount']);
$itemTotalValue += $mem_detailspanier[$i]['itemAmount'] * $mem_detailspanier[$i]['itemQuantity'];
$taxTotalValue += $mem_detailspanier[$i]['itemSalesTaxe'] * $mem_detailspanier[$i]['itemQuantity'];
$itemDetails = new PaymentDetailsItemType();
$itemDetails->Name = fxreplace_accents_string($mem_detailspanier[$i]['itemName']);
$itemDetails->Description= fxreplace_accents_string($mem_detailspanier[$i]['itemDescription']);
$itemDetails->Amount = $itemAmount;
$itemDetails->Quantity = $mem_detailspanier[$i]['itemQuantity'];
$itemDetails->ItemCategory = 'Digital';
$itemDetails->Tax = new BasicAmountType($currencyCode, $mem_detailspanier[$i]['itemSalesTaxe']);
$paymentDetails->PaymentDetailsItem[$i] = $itemDetails;
}
$orderTotalValue = $shippingTotal->value + $handlingTotal->value + $insuranceTotal->value + $itemTotalValue + $taxTotalValue;
$paymentDetails->ShipToAddress = $address;
$paymentDetails->ItemTotal = new BasicAmountType($currencyCode, $itemTotalValue);
$paymentDetails->OrderTotal = new BasicAmountType($currencyCode, $orderTotalValue);
$paymentDetails->TaxTotal = new BasicAmountType($currencyCode, $taxTotalValue);
$paymentDetails->PaymentAction = 'Sale';
$paymentDetails->HandlingTotal = $handlingTotal;
$paymentDetails->InsuranceTotal = $insuranceTotal;
$paymentDetails->ShippingTotal = $shippingTotal;
$paymentDetails->ShipToAddress = $address;
$paymentDetails->ItemTotal = new BasicAmountType($currencyCode, $tabTotal['total']);
$paymentDetails->OrderTotal = new BasicAmountType($currencyCode, $tabTotal['total']);
$paymentDetails->TaxTotal = new BasicAmountType($currencyCode, $tabTotal['tps'] + $tabTotal['tvq']);
$paymentDetails->FulfillmentAddress=$address;
print_r($paymentDetails);
if (isset($mem_var_paypal['notifyURL']))
{
$paymentDetails->NotifyURL = $mem_var_paypal['notifyURL'];
}
$setECReqDetails = new SetExpressCheckoutRequestDetailsType();
$setECReqDetails->PaymentDetails[0] = $paymentDetails;
$setECReqDetails->CancelURL = $cancelUrl;
$setECReqDetails->ReturnURL = $returnUrl;
$setECReqDetails->BuyerEmail=$mem_email;
// Shipping details
$setECReqDetails->NoShipping = $mem_var_paypal['noShipping'];
$setECReqDetails->AddressOverride = $mem_var_paypal['addressOverride'];
$setECReqDetails->ReqConfirmShipping = $mem_var_paypal['reqConfirmShipping'];
// Billing agreement
$billingAgreementDetails = new BillingAgreementDetailsType($mem_var_paypal['billingType']='None');
$billingAgreementDetails->BillingAgreementDescription = $mem_var_paypal['billingAgreementText'];
$setECReqDetails->BillingAgreementDetails = array($billingAgreementDetails);
// Display options
$setECReqDetails->cppheaderimage = '';
$setECReqDetails->cppheaderbordercolor = '';
$setECReqDetails->cppheaderbackcolor = '';
$setECReqDetails->cpppayflowcolor = '';
$setECReqDetails->cppcartbordercolor = '';
$setECReqDetails->cpplogoimage = '';
$setECReqDetails->PageStyle = '';
$setECReqDetails->BrandName = '';
$setECReqDetails->SolutionType = 'Sole';
$setECReqDetails->LandingPage= 'Billing';
// Advanced options
$setECReqDetails->AllowNote = $mem_var_paypal['allowNote'];
$setECReqType = new SetExpressCheckoutRequestType();
$setECReqType->SetExpressCheckoutRequestDetails = $setECReqDetails;
$setECReq = new SetExpressCheckoutReq();
$setECReq->SetExpressCheckoutRequest = $setECReqType;
$paypalService = new PayPalAPIInterfaceServiceService();
try {
/* wrap API method calls on the service object with a try catch */
$setECResponse = $paypalService->SetExpressCheckout($setECReq);
} catch (Exception $ex) {
include_once("../Error.php");
exit;
}
if (isset($setECResponse))
{
/*
echo "<table>";
echo "<tr><td>Ack :</td><td><div id='Ack'>$setECResponse->Ack</div> </td></tr>";
echo "<tr><td>Token :</td><td><div id='Token'>$setECResponse->Token</div> </td></tr>";
echo "</table>";
echo '<pre>';
print_r($setECResponse);
echo '</pre>';
*/
if ($setECResponse->Ack =='Success')
{
$token = $setECResponse->Token;
// Redirect to paypal.com here
//$payPalURL = 'https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=' . $token;
$payPalURL = $vpaypal_site.'?cmd=_express-checkout&token=' . $token;
echo" <a href=$payPalURL><b>* Redirect to PayPal to login </b></a><br>";
//header('Location: ' .$payPalURL );
exit;
}
}
if ($strLangue == 'fr')
$_SESSION['msg'] = 'e118';
else
$_SESSION['msg'] = 'e518';
echo(!empty($_GET['lang']));
if ($_SESSION['lang'] == 'fr')
$strPage = 'panier';
else
$strPage = 'cart';
echo
header('Location: ' . $vDomaine . '/' . $strPage . '/checkout/' . $_SESSION['eve_label_url'] );
exit;
//require_once '../Response.php';
?>