$_SESSION['shoppingcartid'])); require_once CROOT."/midware/PayPal-PHP-SDK/start.php"; use PayPal\Api\Amount; use PayPal\Api\Details; use PayPal\Api\Item; use PayPal\Api\ItemList; use PayPal\Api\Payer; use PayPal\Api\Payment; use PayPal\Api\RedirectUrls; use PayPal\Api\Transaction; $total = $cart['totalprice']['full']; $payer = new Payer; $payer->setPaymentMethod('paypal'); $invoicenumber = uniqid(); // init $items = array(); foreach ($cart['items'] as $key => $cartitem) { $item = new Item(); $item->setName($cartitem['details']['name']) ->setCurrency('USD') ->setQuantity(1) ->setPrice($cartitem['sumprice']['full']); $items[] = $item; } #var_dump($items); #die(); $itemList = new ItemList(); $itemList->setItems($items); $details = new Details(); $details->setShipping($shipping) ->setSubtotal($total); $amount = new Amount(); $amount->setCurrency('USD') ->setTotal($total) ->setDetails($details); $transaction = new Transaction(); $transaction->setAmount($amount) ->setItemList($itemList) ->setDescription('pay for something') ->setInvoiceNumber($invoicenumber); $redirectUrls = new RedirectUrls(); if ($GLOBALS['platform'] == "dev") { $redirectUrls->setReturnUrl('http://dev.secure.phorio.com/?t=pay&success=true') ->setCancelUrl('http://dev.secure.phorio.com/?t=cart&success=false'); } else { $redirectUrls->setReturnUrl('https://secure.phorio.com/?t=pay&success=true') ->setCancelUrl('https://secure.phorio.com/?t=cart&success=false'); } $payment = new Payment(); $payment->setIntent('sale') ->setPayer($payer) ->setRedirectUrls($redirectUrls) ->setTransactions([$transaction]); try { $payment->create($paypal); } catch (\PayPal\Exception\PayPalConnectionException $ex) { // This will print the detailed information on the exception. //REALLY HELPFUL FOR DEBUGGING $data = json_decode($ex->getData()); var_dump($data); } $approvalUrl = $payment->getApprovalLink(); header("Location: {$approvalUrl}"); ?>