private static function _setInvoiceNumber(PayPal\Api\Transaction &$transaction) { $transaction->setInvoiceNumber(uniqid()); }
$payer = new \PayPal\Api\Payer(); $payer->setPaymentMethod('credit_card'); $payer->setFundingInstruments(array($fi)); $amountDetails = new \PayPal\Api\Details(); $amountDetails->setSubtotal(str_replace(",", "", number_format($_SESSION['subtotal'], 2))); $amountDetails->setTax(str_replace(",", "", number_format($_SESSION['tax_amount'], 2))); $amountDetails->setShipping(str_replace(",", "", number_format($_SESSION['shipping_amount'], 2))); $amountDetails->setHandlingFee(str_replace(",", "", number_format($_SESSION['handling_amount'], 2))); $amount = new \PayPal\Api\Amount(); $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;