Exemplo n.º 1
0
 /**
  * Handle gateway processing message
  * Occurs when returning from gateway, but payment was not yet confirmed
  *
  * @return void
  */
 public function processing()
 {
     $app = JFactory::getApplication();
     $submit_key = $app->input->getString('key', '');
     if ($app->input->get('lang')) {
         $lang_v = "&lang=" . $app->input->get('lang');
     }
     $model = $this->getModel('payment');
     $model->setSubmitKey($submit_key);
     $submitters = $model->getSubmitters();
     if (count($submitters)) {
         $first = current($submitters);
         if (!empty($first->integration)) {
             switch ($first->integration) {
                 case 'redevent':
                     $app->redirect('index.php?option=com_redevent&view=payment&submit_key=' . $submit_key . '&state=processing' . $lang_v);
                     break;
                 default:
                     $app->redirect('index.php?option=com_' . $first->integration . '&view=payment&submit_key=' . $submit_key . '&state=processing' . $lang_v);
                     break;
             }
         }
     }
     // Analytics for default landing page
     if (redFORMHelperAnalytics::isEnabled()) {
         $payement = $model->getPaymentDetails($submit_key);
         // Add transaction
         $trans = new stdclass();
         $trans->id = $submit_key;
         $trans->affiliation = $payement->form;
         $trans->revenue = $model->getPrice();
         redFORMHelperAnalytics::addTrans($trans);
         // Add submitters as items
         foreach ($submitters as $s) {
             $item = new stdclass();
             $item->id = $submit_key;
             $item->productname = 'submitter' . $s->id;
             $item->sku = 'submitter' . $s->id;
             $item->category = '';
             $item->price = $s->price;
             redFORMHelperAnalytics::addItem($item);
         }
         redFORMHelperAnalytics::trackTrans();
     }
     $app->input->set('view', 'payment');
     $app->input->set('layout', 'final');
     $app->input->set('state', 'processing');
     $this->display();
 }