Example #1
0
 public function form(array $params)
 {
     $billingService = BOL_BillingService::getInstance();
     $adapter = new BILLINGCCBILL_CLASS_CcbillAdapter();
     $lang = OW::getLanguage();
     $sale = $billingService->getSessionSale();
     if (!$sale) {
         $url = $billingService->getSessionBackUrl();
         if ($url != null) {
             OW::getFeedback()->warning($lang->text('base', 'billing_order_canceled'));
             $billingService->unsetSessionBackUrl();
             $this->redirect($url);
         } else {
             $this->redirectToAction('select');
         }
     }
     $formId = uniqid('order_form-');
     $this->assign('formId', $formId);
     $js = '$("#' . $formId . '").submit()';
     OW::getDocument()->addOnloadScript($js);
     $fieldsParams = array('formType' => isset($params['type']) ? $params['type'] : 'cc', 'pluginKey' => $sale->pluginKey, 'entityKey' => $sale->entityKey);
     $fields = $adapter->getFields($fieldsParams);
     $this->assign('fields', $fields);
     if ($billingService->prepareSale($adapter, $sale)) {
         $sale->totalAmount = sprintf("%01.2f", $sale->totalAmount);
         $sale->price = sprintf("%01.2f", $sale->price);
         if ($sale->recurring) {
             $rebills = 99;
             $digest = $adapter->generateRecurringTransactionDigest($sale->totalAmount, $sale->period, $sale->totalAmount, $sale->period, $rebills, $adapter->getActiveCurrencyCode());
             $this->assign('rebills', $rebills);
         } else {
             $digest = $adapter->generateSingleTransactionDigest($sale->totalAmount, $sale->period, $adapter->getActiveCurrencyCode());
         }
         $this->assign('formDigest', $digest);
         $this->assign('currencyCode', $adapter->getActiveCurrencyCode());
         $this->assign('sale', $sale);
         $masterPageFileDir = OW::getThemeManager()->getMasterPageTemplate('blank');
         OW::getDocument()->getMasterPage()->setTemplate($masterPageFileDir);
         $billingService->unsetSessionSale();
     } else {
         $productAdapter = $billingService->getProductAdapter($sale->entityKey);
         if ($productAdapter) {
             $productUrl = $productAdapter->getProductOrderUrl();
         }
         OW::getFeedback()->warning($lang->text('base', 'billing_order_init_failed'));
         $url = isset($productUrl) ? $productUrl : $billingService->getOrderFailedPageUrl();
         $this->redirect($url);
     }
 }