$amount->setCurrency(isset($config['CurrencyCode']) ? $config['CurrencyCode'] : 'USD'); $amount->setTotal(str_replace(",", "", number_format($_SESSION['amount'], 2))); $amount->setDetails($amountDetails); $transaction = new \PayPal\Api\Transaction(); $transaction->setAmount($amount); $transaction->setDescription(isset($_SESSION['item_name']) && $_SESSION['item_name'] != '' ? $_SESSION['item_name'] : 'PayPal Payments Pro Virtual Terminal Sale'); $transaction->setInvoiceNumber($_SESSION['invoice']); $transaction->setCustom($_SESSION['notes']); $payment = new \PayPal\Api\Payment(); $payment->setIntent(strtolower($_SESSION['transaction_type'])); $payment->setPayer($payer); $payment->setTransactions(array($transaction)); try { $payment->create($paypal_rest); if ($payment->getState() == 'approved') { $transactions = $payment->getTransactions(); foreach ($transactions as $txn) { $related_resources = $txn->getRelatedResources(); foreach ($related_resources as $related) { $related_sale = $related->getSale(); if ($related_sale) { $_SESSION['transaction_id'] = $related_sale->id; } } } $_SESSION['payment_id'] = $payment->getId(); $_SESSION['payment_created'] = $payment->getCreateTime(); $_SESSION['payment_state'] = $payment->getState(); } else { $_SESSION['payment_state'] = $payment->getState(); $result_data_html = $_SESSION['payment_state'];