$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'];
         echo json_encode(array('result' => 'error', 'result_data' => $result_data_html));
         exit;
     }
 } catch (\PayPal\Exception\PayPalConnectionException $ex) {
     $PayPalErrors = json_decode($ex->getData());
     // Write to transaction log
     if (isset($config['LogEnabled']) && $config['LogEnabled']) {
         $log_array = (array) $PayPalErrors;
         logTransaction($log_array, $config['LogFilePath']);
     }
     $result_data_html = '<ul>';