Ejemplo n.º 1
0
 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;