Files
ms1inscription-v5/paypal_prod/api/ExpressCheckout/SetExpressCheckout.php
2026-05-13 09:43:32 -04:00

186 lines
7.2 KiB
PHP

<?php
session_start();
ob_start();
$strLangue = $_SESSION['lang'];
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];
$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;
$tabTotal = fxTotalPanier($_SESSION['no_panier'], $strLangue);
$logger = new PPLoggingManager('SetExpressCheckout');
$url = dirname($vDomaine . $_SERVER['REQUEST_URI']);
$returnUrl = "$url/GetExpressCheckout.php";
//$cancelUrl = "$url/SetExpressCheckout.php" ;
$cancelUrl = "$url/annuler.php?lang=" . $strLangue ;
$currencyCode = 'CAD';
$shippingTotal = new BasicAmountType($currencyCode, 0);
$handlingTotal = new BasicAmountType($currencyCode, 0);
$insuranceTotal = new BasicAmountType($currencyCode, 0);
$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->PostalCode = strtoupper(fxUnescape($tabAcheteur['com_codepostal']));
$address->Country = $mem_var_paypal['CountryCode'];
$address->CountryName = $mem_pays;
$address->Phone = fxUnescape($tabAcheteur['com_telephone1']);
$paymentDetails = new PaymentDetailsType();
$itemTotalValue = $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 = 'Physical';
$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'] - ($tabTotal['total_taxes'] + $tabTotal['total_taxes_frais']));
$paymentDetails->OrderTotal = new BasicAmountType($currencyCode, $tabTotal['total']);
$paymentDetails->TaxTotal = new BasicAmountType($currencyCode, $tabTotal['total_taxes'] + $tabTotal['total_taxes_frais']);
$paymentDetails->FulfillmentAddress = $address;
echo '<pre>';
print_r($paymentDetails);
echo '</pre>';
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 = '';
// pour login et carte
//$setECReqDetails->SolutionType = 'Sole';
$setECReqDetails->SolutionType ='Mark';
$setECReqDetails->LandingPage= 'Login';
//$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' || $setECResponse->Ack == 'SuccessWithWarning') {
$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;
header('Location: ' . $payPalURL );
exit;
}
}
if ($strLangue == 'fr')
$_SESSION['msg'] = 'e118';
else
$_SESSION['msg'] = 'e518';
if ($_SESSION['lang'] == 'fr')
$strPage = 'panier';
else
$strPage = 'cart';
header('Location: ' . $vDomaine . '/' . $strPage . '/checkout/' . $_SESSION['eve_label_url'] );
exit;
//require_once '../Response.php';
?>