$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'];